Mock Version: 6.1
Mock Version: 6.1
Mock Version: 6.1
Mock Version: 6.1
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs  --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/dlrn-centos9-master-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 0x7fa832637ee0>timeout=0uid=1021gid=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.20250529165237.4cc3fd3.el9.src.rpm
Child return code was: 0
Mock Version: 6.1
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs  --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/dlrn-centos9-master-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 0x7f073be8cee0>timeout=0uid=1021gid=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.20250529165237.4cc3fd3.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-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 0x7f073be8cee0>timeout=0uid=1021gid=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.wPC56P
+ umask 022
+ cd /builddir/build/BUILD
+ cd /builddir/build/BUILD
+ rm -rf ironic-29.1.0.dev138
+ /usr/bin/gzip -dc /builddir/build/SOURCES/ironic-29.1.0.dev138-0.20250529165237.4cc3fd3.tar.gz
+ /usr/bin/tar -xof -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd ironic-29.1.0.dev138
+ /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.msV8wi
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev138
+ 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.dev138/.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.dev138/.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.dev138/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.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-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 0x7f073be8cee0>timeout=0uid=1021gid=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.g1rOS0
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev138
+ 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.dev138/.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.dev138/.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.dev138/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.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-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 0x7f073be8cee0>timeout=0uid=1021gid=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.EMi2V3
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev138
+ 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.dev138/.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.dev138/.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.dev138/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.5.0.dev2)
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.dev4)
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.3.0.dev4)
Handling oslo.rootwrap>=5.8.0 from tox --print-deps-only: py39
Requirement not satisfied: oslo.rootwrap>=5.8.0
Handling oslo.log>=4.3.0 from tox --print-deps-only: py39
Requirement not satisfied: oslo.log>=4.3.0
Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py39
Requirement not satisfied: oslo.middleware>=3.31.0
Handling oslo.policy>=4.5.0 from tox --print-deps-only: py39
Requirement not satisfied: oslo.policy>=4.5.0
Handling oslo.serialization>=2.25.0 from tox --print-deps-only: py39
Requirement not satisfied: oslo.serialization>=2.25.0
Handling oslo.service>=1.24.0 from tox --print-deps-only: py39
Requirement not satisfied: oslo.service>=1.24.0
Handling oslo.upgradecheck>=1.3.0 from tox --print-deps-only: py39
Requirement not satisfied: oslo.upgradecheck>=1.3.0
Handling oslo.utils>=8.0.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.utils>=8.0.0
   (installed: oslo.utils 8.3.0.dev7)
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.dev5)
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.dev138/ironic-29.1.0.dev138.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.5.0.dev2)
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.dev4)
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.3.0.dev4)
Handling oslo.rootwrap (>=5.8.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: oslo.rootwrap (>=5.8.0)
Handling oslo.log (>=4.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: oslo.log (>=4.3.0)
Handling oslo.middleware (>=3.31.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: oslo.middleware (>=3.31.0)
Handling oslo.policy (>=4.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: oslo.policy (>=4.5.0)
Handling oslo.serialization (>=2.25.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: oslo.serialization (>=2.25.0)
Handling oslo.service (>=1.24.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: oslo.service (>=1.24.0)
Handling oslo.upgradecheck (>=1.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: oslo.upgradecheck (>=1.3.0)
Handling oslo.utils (>=8.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.utils (>=8.0.0)
   (installed: oslo.utils 8.3.0.dev7)
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.20250529165237.4cc3fd3.el9.x86_64-pyproject-buildrequires
+ rm -rfv ironic-29.1.0.dev138.dist-info/
removed 'ironic-29.1.0.dev138.dist-info/AUTHORS'
removed 'ironic-29.1.0.dev138.dist-info/LICENSE'
removed 'ironic-29.1.0.dev138.dist-info/METADATA'
removed 'ironic-29.1.0.dev138.dist-info/entry_points.txt'
removed 'ironic-29.1.0.dev138.dist-info/pbr.json'
removed 'ironic-29.1.0.dev138.dist-info/top_level.txt'
removed directory 'ironic-29.1.0.dev138.dist-info/'
+ RPM_EC=0
++ jobs -p
Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.buildreqs.nosrc.rpm
+ exit 0
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-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 0x7f073be8cee0>timeout=0uid=1021gid=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.7YloW5
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev138
+ 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.dev138/.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.dev138/.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.dev138/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.3.0.dev20)
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.1.dev3)
Handling stevedore>=1.29.0 from tox --print-deps-only: py39
Requirement satisfied: stevedore>=1.29.0
   (installed: stevedore 5.5.0.dev2)
Handling oslo.concurrency>=4.2.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.concurrency>=4.2.0
   (installed: oslo.concurrency 7.2.0.dev3)
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.dev4)
Handling oslo.context>=2.22.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.context>=2.22.0
   (installed: oslo.context 6.0.1.dev1)
Handling oslo.db>=9.1.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.db>=9.1.0
   (installed: oslo.db 17.3.0.dev4)
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.dev2)
Handling oslo.log>=4.3.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.log>=4.3.0
   (installed: oslo.log 7.2.0.dev7)
Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.middleware>=3.31.0
   (installed: oslo.middleware 6.5.1.dev1)
Handling oslo.policy>=4.5.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.policy>=4.5.0
   (installed: oslo.policy 4.6.0.dev4)
Handling oslo.serialization>=2.25.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.serialization>=2.25.0
   (installed: oslo.serialization 5.8.0.dev1)
Handling oslo.service>=1.24.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.service>=1.24.0
   (installed: oslo.service 4.2.0.dev2)
Handling oslo.upgradecheck>=1.3.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.upgradecheck>=1.3.0
   (installed: oslo.upgradecheck 2.6.0.dev1)
Handling oslo.utils>=8.0.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.utils>=8.0.0
   (installed: oslo.utils 8.3.0.dev7)
Handling osprofiler>=1.5.0 from tox --print-deps-only: py39
Requirement satisfied: osprofiler>=1.5.0
   (installed: osprofiler 4.2.1.dev18)
Handling os-traits>=0.4.0 from tox --print-deps-only: py39
Requirement satisfied: os-traits>=0.4.0
   (installed: os-traits 3.4.1.dev3)
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.dev7)
Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.messaging>=14.1.0
   (installed: oslo.messaging 16.2.0.dev8)
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.dev5)
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.2.dev1)
Handling tooz>=2.7.0 from tox --print-deps-only: py39
Requirement satisfied: tooz>=2.7.0
   (installed: tooz 6.3.1.dev32)
Handling openstacksdk>=0.99.0 from tox --print-deps-only: py39
Requirement satisfied: openstacksdk>=0.99.0
   (installed: openstacksdk 3.1.1.dev8)
Handling sushy>=4.8.0 from tox --print-deps-only: py39
Requirement satisfied: sushy>=4.8.0
   (installed: sushy 5.6.1.dev2)
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 1.0.1)
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.1.dev31)
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.6.0.dev2)
Handling oslotest>=3.2.0 from tox --print-deps-only: py39
Requirement satisfied: oslotest>=3.2.0
   (installed: oslotest 5.0.1.dev5)
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.dev138/ironic-29.1.0.dev138.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.3.0.dev20)
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.1.dev3)
Handling stevedore (>=1.29.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: stevedore (>=1.29.0)
   (installed: stevedore 5.5.0.dev2)
Handling oslo.concurrency (>=4.2.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.concurrency (>=4.2.0)
   (installed: oslo.concurrency 7.2.0.dev3)
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.dev4)
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.1.dev1)
Handling oslo.db (>=9.1.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.db (>=9.1.0)
   (installed: oslo.db 17.3.0.dev4)
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.dev2)
Handling oslo.log (>=4.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.log (>=4.3.0)
   (installed: oslo.log 7.2.0.dev7)
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.1.dev1)
Handling oslo.policy (>=4.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.policy (>=4.5.0)
   (installed: oslo.policy 4.6.0.dev4)
Handling oslo.serialization (>=2.25.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.serialization (>=2.25.0)
   (installed: oslo.serialization 5.8.0.dev1)
Handling oslo.service (>=1.24.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.service (>=1.24.0)
   (installed: oslo.service 4.2.0.dev2)
Handling oslo.upgradecheck (>=1.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.upgradecheck (>=1.3.0)
   (installed: oslo.upgradecheck 2.6.0.dev1)
Handling oslo.utils (>=8.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.utils (>=8.0.0)
   (installed: oslo.utils 8.3.0.dev7)
Handling osprofiler (>=1.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: osprofiler (>=1.5.0)
   (installed: osprofiler 4.2.1.dev18)
Handling os-traits (>=0.4.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: os-traits (>=0.4.0)
   (installed: os-traits 3.4.1.dev3)
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.dev7)
Handling oslo.messaging (>=14.1.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.messaging (>=14.1.0)
   (installed: oslo.messaging 16.2.0.dev8)
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.dev5)
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.2.dev1)
Handling tooz (>=2.7.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: tooz (>=2.7.0)
   (installed: tooz 6.3.1.dev32)
Handling openstacksdk (>=0.99.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: openstacksdk (>=0.99.0)
   (installed: openstacksdk 3.1.1.dev8)
Handling sushy (>=4.8.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: sushy (>=4.8.0)
   (installed: sushy 5.6.1.dev2)
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 1.0.1)
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.1.dev31)
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.20250529165237.4cc3fd3.el9.x86_64-pyproject-buildrequires
+ rm -rfv ironic-29.1.0.dev138.dist-info/
removed 'ironic-29.1.0.dev138.dist-info/AUTHORS'
removed 'ironic-29.1.0.dev138.dist-info/LICENSE'
removed 'ironic-29.1.0.dev138.dist-info/METADATA'
removed 'ironic-29.1.0.dev138.dist-info/top_level.txt'
removed 'ironic-29.1.0.dev138.dist-info/pbr.json'
removed 'ironic-29.1.0.dev138.dist-info/entry_points.txt'
removed directory 'ironic-29.1.0.dev138.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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-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 0x7f073be8cee0>timeout=0uid=1021gid=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.IHhNwH
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev138
+ 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.dev138/.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.dev138/.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.dev138/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.3.0.dev20)
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.1.dev3)
Handling stevedore>=1.29.0 from tox --print-deps-only: py39
Requirement satisfied: stevedore>=1.29.0
   (installed: stevedore 5.5.0.dev2)
Handling oslo.concurrency>=4.2.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.concurrency>=4.2.0
   (installed: oslo.concurrency 7.2.0.dev3)
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.dev4)
Handling oslo.context>=2.22.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.context>=2.22.0
   (installed: oslo.context 6.0.1.dev1)
Handling oslo.db>=9.1.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.db>=9.1.0
   (installed: oslo.db 17.3.0.dev4)
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.dev2)
Handling oslo.log>=4.3.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.log>=4.3.0
   (installed: oslo.log 7.2.0.dev7)
Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.middleware>=3.31.0
   (installed: oslo.middleware 6.5.1.dev1)
Handling oslo.policy>=4.5.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.policy>=4.5.0
   (installed: oslo.policy 4.6.0.dev4)
Handling oslo.serialization>=2.25.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.serialization>=2.25.0
   (installed: oslo.serialization 5.8.0.dev1)
Handling oslo.service>=1.24.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.service>=1.24.0
   (installed: oslo.service 4.2.0.dev2)
Handling oslo.upgradecheck>=1.3.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.upgradecheck>=1.3.0
   (installed: oslo.upgradecheck 2.6.0.dev1)
Handling oslo.utils>=8.0.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.utils>=8.0.0
   (installed: oslo.utils 8.3.0.dev7)
Handling osprofiler>=1.5.0 from tox --print-deps-only: py39
Requirement satisfied: osprofiler>=1.5.0
   (installed: osprofiler 4.2.1.dev18)
Handling os-traits>=0.4.0 from tox --print-deps-only: py39
Requirement satisfied: os-traits>=0.4.0
   (installed: os-traits 3.4.1.dev3)
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.dev7)
Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.messaging>=14.1.0
   (installed: oslo.messaging 16.2.0.dev8)
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.dev5)
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.2.dev1)
Handling tooz>=2.7.0 from tox --print-deps-only: py39
Requirement satisfied: tooz>=2.7.0
   (installed: tooz 6.3.1.dev32)
Handling openstacksdk>=0.99.0 from tox --print-deps-only: py39
Requirement satisfied: openstacksdk>=0.99.0
   (installed: openstacksdk 3.1.1.dev8)
Handling sushy>=4.8.0 from tox --print-deps-only: py39
Requirement satisfied: sushy>=4.8.0
   (installed: sushy 5.6.1.dev2)
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 1.0.1)
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.1.dev31)
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.6.0.dev2)
Handling oslotest>=3.2.0 from tox --print-deps-only: py39
Requirement satisfied: oslotest>=3.2.0
   (installed: oslotest 5.0.1.dev5)
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.dev138/ironic-29.1.0.dev138.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.3.0.dev20)
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.1.dev3)
Handling stevedore (>=1.29.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: stevedore (>=1.29.0)
   (installed: stevedore 5.5.0.dev2)
Handling oslo.concurrency (>=4.2.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.concurrency (>=4.2.0)
   (installed: oslo.concurrency 7.2.0.dev3)
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.dev4)
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.1.dev1)
Handling oslo.db (>=9.1.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.db (>=9.1.0)
   (installed: oslo.db 17.3.0.dev4)
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.dev2)
Handling oslo.log (>=4.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.log (>=4.3.0)
   (installed: oslo.log 7.2.0.dev7)
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.1.dev1)
Handling oslo.policy (>=4.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.policy (>=4.5.0)
   (installed: oslo.policy 4.6.0.dev4)
Handling oslo.serialization (>=2.25.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.serialization (>=2.25.0)
   (installed: oslo.serialization 5.8.0.dev1)
Handling oslo.service (>=1.24.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.service (>=1.24.0)
   (installed: oslo.service 4.2.0.dev2)
Handling oslo.upgradecheck (>=1.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.upgradecheck (>=1.3.0)
   (installed: oslo.upgradecheck 2.6.0.dev1)
Handling oslo.utils (>=8.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.utils (>=8.0.0)
   (installed: oslo.utils 8.3.0.dev7)
Handling osprofiler (>=1.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: osprofiler (>=1.5.0)
   (installed: osprofiler 4.2.1.dev18)
Handling os-traits (>=0.4.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: os-traits (>=0.4.0)
   (installed: os-traits 3.4.1.dev3)
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.dev7)
Handling oslo.messaging (>=14.1.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.messaging (>=14.1.0)
   (installed: oslo.messaging 16.2.0.dev8)
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.dev5)
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.2.dev1)
Handling tooz (>=2.7.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: tooz (>=2.7.0)
   (installed: tooz 6.3.1.dev32)
Handling openstacksdk (>=0.99.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: openstacksdk (>=0.99.0)
   (installed: openstacksdk 3.1.1.dev8)
Handling sushy (>=4.8.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: sushy (>=4.8.0)
   (installed: sushy 5.6.1.dev2)
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 1.0.1)
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.1.dev31)
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.20250529165237.4cc3fd3.el9.x86_64-pyproject-buildrequires
+ rm -rfv ironic-29.1.0.dev138.dist-info/
removed 'ironic-29.1.0.dev138.dist-info/LICENSE'
removed 'ironic-29.1.0.dev138.dist-info/AUTHORS'
removed 'ironic-29.1.0.dev138.dist-info/METADATA'
removed 'ironic-29.1.0.dev138.dist-info/entry_points.txt'
removed 'ironic-29.1.0.dev138.dist-info/pbr.json'
removed 'ironic-29.1.0.dev138.dist-info/top_level.txt'
removed directory 'ironic-29.1.0.dev138.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.qAWIfb
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev138
+ mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev138/.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.dev138/.pyproject-builddir
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/ironic-29.1.0.dev138/pyproject-wheeldir
Processing /builddir/build/BUILD/ironic-29.1.0.dev138
  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.dev138/.pyproject-builddir/tmpfge8__gv
  /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.dev138/.pyproject-builddir/pip-modern-metadata-6d18iklg/ironic.egg-info
  writing /builddir/build/BUILD/ironic-29.1.0.dev138/.pyproject-builddir/pip-modern-metadata-6d18iklg/ironic.egg-info/PKG-INFO
  writing dependency_links to /builddir/build/BUILD/ironic-29.1.0.dev138/.pyproject-builddir/pip-modern-metadata-6d18iklg/ironic.egg-info/dependency_links.txt
  writing entry points to /builddir/build/BUILD/ironic-29.1.0.dev138/.pyproject-builddir/pip-modern-metadata-6d18iklg/ironic.egg-info/entry_points.txt
  writing requirements to /builddir/build/BUILD/ironic-29.1.0.dev138/.pyproject-builddir/pip-modern-metadata-6d18iklg/ironic.egg-info/requires.txt
  writing top-level names to /builddir/build/BUILD/ironic-29.1.0.dev138/.pyproject-builddir/pip-modern-metadata-6d18iklg/ironic.egg-info/top_level.txt
  writing pbr to /builddir/build/BUILD/ironic-29.1.0.dev138/.pyproject-builddir/pip-modern-metadata-6d18iklg/ironic.egg-info/pbr.json
  [pbr] Processing SOURCES.txt
  writing manifest file '/builddir/build/BUILD/ironic-29.1.0.dev138/.pyproject-builddir/pip-modern-metadata-6d18iklg/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.dev138/.pyproject-builddir/pip-modern-metadata-6d18iklg/ironic.egg-info/SOURCES.txt'
  creating '/builddir/build/BUILD/ironic-29.1.0.dev138/.pyproject-builddir/pip-modern-metadata-6d18iklg/ironic-29.1.0.dev138.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.dev138/.pyproject-builddir/tmp0kc84n3t
  /usr/lib/python3.9/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
    warnings.warn(
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib
  creating build/lib/ironic
  creating build/lib/ironic/tests
  creating build/lib/ironic/tests/unit
  creating build/lib/ironic/tests/unit/drivers
  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
  creating build/lib/ironic/tests/unit/drivers/modules/inspector
  creating build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_validate_interfaces.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_root_device.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_ramdisk_error.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_raid_device.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_ports.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_physical_network.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_pci_devices.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_parse_lldp.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_memory.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_local_link_connection.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_extra_hardware.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_cpu_capabilities.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_boot_mode.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_architecture.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/test_accelerators.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  copying ironic/tests/unit/drivers/modules/inspector/hooks/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/inspector/hooks
  creating build/lib/ironic/dhcp
  copying ironic/dhcp/none.py -> build/lib/ironic/dhcp
  copying ironic/dhcp/neutron.py -> build/lib/ironic/dhcp
  copying ironic/dhcp/dnsmasq.py -> build/lib/ironic/dhcp
  copying ironic/dhcp/base.py -> build/lib/ironic/dhcp
  copying ironic/dhcp/__init__.py -> build/lib/ironic/dhcp
  creating build/lib/ironic/drivers
  creating build/lib/ironic/drivers/modules
  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/pxe_filter
  copying ironic/pxe_filter/service.py -> build/lib/ironic/pxe_filter
  copying ironic/pxe_filter/dnsmasq.py -> build/lib/ironic/pxe_filter
  copying ironic/pxe_filter/__init__.py -> build/lib/ironic/pxe_filter
  creating build/lib/ironic/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/drac
  copying ironic/drivers/modules/drac/vendor_passthru.py -> build/lib/ironic/drivers/modules/drac
  copying ironic/drivers/modules/drac/utils.py -> build/lib/ironic/drivers/modules/drac
  copying ironic/drivers/modules/drac/raid.py -> build/lib/ironic/drivers/modules/drac
  copying ironic/drivers/modules/drac/power.py -> build/lib/ironic/drivers/modules/drac
  copying ironic/drivers/modules/drac/management.py -> build/lib/ironic/drivers/modules/drac
  copying ironic/drivers/modules/drac/inspect.py -> build/lib/ironic/drivers/modules/drac
  copying ironic/drivers/modules/drac/boot.py -> build/lib/ironic/drivers/modules/drac
  copying ironic/drivers/modules/drac/bios.py -> build/lib/ironic/drivers/modules/drac
  copying ironic/drivers/modules/drac/__init__.py -> build/lib/ironic/drivers/modules/drac
  creating build/lib/ironic/api
  copying ironic/api/wsgi.py -> build/lib/ironic/api
  copying ironic/api/method.py -> build/lib/ironic/api
  copying ironic/api/hooks.py -> build/lib/ironic/api
  copying ironic/api/functions.py -> build/lib/ironic/api
  copying ironic/api/config.py -> build/lib/ironic/api
  copying ironic/api/app.py -> build/lib/ironic/api
  copying ironic/api/__init__.py -> build/lib/ironic/api
  creating build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_root.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_proxy_middleware.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_ospmiddleware.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_middleware.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_method.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_hooks.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_healthcheck.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_functions.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_audit.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api
  creating build/lib/ironic/drivers/modules/ansible
  copying ironic/drivers/modules/ansible/deploy.py -> build/lib/ironic/drivers/modules/ansible
  copying ironic/drivers/modules/ansible/__init__.py -> build/lib/ironic/drivers/modules/ansible
  creating build/lib/ironic/tests/unit/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/objects
  copying ironic/objects/volume_target.py -> build/lib/ironic/objects
  copying ironic/objects/volume_connector.py -> build/lib/ironic/objects
  copying ironic/objects/trait.py -> build/lib/ironic/objects
  copying ironic/objects/runbook.py -> build/lib/ironic/objects
  copying ironic/objects/portgroup.py -> build/lib/ironic/objects
  copying ironic/objects/port.py -> build/lib/ironic/objects
  copying ironic/objects/notification.py -> build/lib/ironic/objects
  copying ironic/objects/node_inventory.py -> build/lib/ironic/objects
  copying ironic/objects/node_history.py -> build/lib/ironic/objects
  copying ironic/objects/node.py -> build/lib/ironic/objects
  copying ironic/objects/inspection_rule.py -> build/lib/ironic/objects
  copying ironic/objects/indirection.py -> build/lib/ironic/objects
  copying ironic/objects/firmware.py -> build/lib/ironic/objects
  copying ironic/objects/fields.py -> build/lib/ironic/objects
  copying ironic/objects/deployment.py -> build/lib/ironic/objects
  copying ironic/objects/deploy_template.py -> build/lib/ironic/objects
  copying ironic/objects/conductor.py -> build/lib/ironic/objects
  copying ironic/objects/chassis.py -> build/lib/ironic/objects
  copying ironic/objects/bios.py -> build/lib/ironic/objects
  copying ironic/objects/base.py -> build/lib/ironic/objects
  copying ironic/objects/allocation.py -> build/lib/ironic/objects
  copying ironic/objects/__init__.py -> build/lib/ironic/objects
  creating build/lib/ironic/tests/unit/pxe_filter
  copying ironic/tests/unit/pxe_filter/test_service.py -> build/lib/ironic/tests/unit/pxe_filter
  copying ironic/tests/unit/pxe_filter/test_dnsmasq.py -> build/lib/ironic/tests/unit/pxe_filter
  copying ironic/tests/unit/pxe_filter/__init__.py -> build/lib/ironic/tests/unit/pxe_filter
  creating build/lib/ironic/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/db/sqlalchemy
  copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy
  copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy
  copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy
  copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy
  copying ironic/tests/unit/drivers/modules/inspector/test_interface.py -> build/lib/ironic/tests/unit/drivers/modules/inspector
  copying ironic/tests/unit/drivers/modules/inspector/test_client.py -> build/lib/ironic/tests/unit/drivers/modules/inspector
  copying ironic/tests/unit/drivers/modules/inspector/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules/inspector
  copying ironic/tests/unit/drivers/modules/inspector/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/inspector
  copying ironic/tests/unit/drivers/modules/test_snmp.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_ramdisk.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_pxe.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_noop_mgmt.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_ipxe.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_ipmitool.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_inspect_utils.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_image_utils.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_image_cache.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_graphical_console.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_deploy_utils.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_console_utils.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_agent_power.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_agent_client.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_agent_base.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/__init__.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/drivers/modules/snmp.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/ramdisk.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/pxe_base.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/pxe.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/noop_mgmt.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/noop.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/ipxe.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/ipmitool.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/inspect_utils.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/image_utils.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/image_cache.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/graphical_console.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/fake.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/deploy_utils.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/console_utils.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/boot_mode_utils.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/agent_power.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/agent_client.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/agent_base.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/agent.py -> build/lib/ironic/drivers/modules
  copying ironic/drivers/modules/__init__.py -> build/lib/ironic/drivers/modules
  creating build/lib/ironic/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/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/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/common
  creating build/lib/ironic/common/inspection_rules
  copying ironic/common/inspection_rules/validation.py -> build/lib/ironic/common/inspection_rules
  copying ironic/common/inspection_rules/utils.py -> build/lib/ironic/common/inspection_rules
  copying ironic/common/inspection_rules/operators.py -> build/lib/ironic/common/inspection_rules
  copying ironic/common/inspection_rules/engine.py -> build/lib/ironic/common/inspection_rules
  copying ironic/common/inspection_rules/base.py -> build/lib/ironic/common/inspection_rules
  copying ironic/common/inspection_rules/actions.py -> build/lib/ironic/common/inspection_rules
  copying ironic/common/inspection_rules/__init__.py -> build/lib/ironic/common/inspection_rules
  creating build/lib/ironic/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
  copying ironic/api/controllers/version.py -> build/lib/ironic/api/controllers
  copying ironic/api/controllers/root.py -> build/lib/ironic/api/controllers
  copying ironic/api/controllers/link.py -> build/lib/ironic/api/controllers
  copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers
  copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers
  creating build/lib/ironic/tests/unit/api/controllers
  copying ironic/tests/unit/api/controllers/test_base.py -> build/lib/ironic/tests/unit/api/controllers
  copying ironic/tests/unit/api/controllers/__init__.py -> build/lib/ironic/tests/unit/api/controllers
  creating build/lib/ironic/drivers/modules/network
  copying ironic/drivers/modules/network/noop.py -> build/lib/ironic/drivers/modules/network
  copying ironic/drivers/modules/network/neutron.py -> build/lib/ironic/drivers/modules/network
  copying ironic/drivers/modules/network/flat.py -> build/lib/ironic/drivers/modules/network
  copying ironic/drivers/modules/network/common.py -> build/lib/ironic/drivers/modules/network
  copying ironic/drivers/modules/network/__init__.py -> build/lib/ironic/drivers/modules/network
  creating build/lib/ironic/tests/functional
  copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional
  creating build/lib/ironic/tests/unit/drivers/modules/ansible
  copying ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/ansible
  copying ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ansible
  creating build/lib/ironic/tests/unit/drivers/modules/drac
  copying ironic/tests/unit/drivers/modules/drac/utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac
  copying ironic/tests/unit/drivers/modules/drac/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac
  copying ironic/tests/unit/drivers/modules/drac/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/drac
  copying ironic/tests/unit/drivers/modules/drac/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/drac
  copying ironic/tests/unit/drivers/modules/drac/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/drac
  copying ironic/tests/unit/drivers/modules/drac/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/drac
  copying ironic/tests/unit/drivers/modules/drac/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/drac
  creating build/lib/ironic/console/rfb
  copying ironic/console/rfb/auths.py -> build/lib/ironic/console/rfb
  copying ironic/console/rfb/authnone.py -> build/lib/ironic/console/rfb
  copying ironic/console/rfb/auth.py -> build/lib/ironic/console/rfb
  copying ironic/console/rfb/__init__.py -> build/lib/ironic/console/rfb
  creating build/lib/ironic/tests/unit/drivers/modules/xclarity
  copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity
  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/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/drivers/modules/inspector
  copying ironic/drivers/modules/inspector/lldp_tlvs.py -> build/lib/ironic/drivers/modules/inspector
  copying ironic/drivers/modules/inspector/lldp_parsers.py -> build/lib/ironic/drivers/modules/inspector
  copying ironic/drivers/modules/inspector/interface.py -> build/lib/ironic/drivers/modules/inspector
  copying ironic/drivers/modules/inspector/client.py -> build/lib/ironic/drivers/modules/inspector
  copying ironic/drivers/modules/inspector/agent.py -> build/lib/ironic/drivers/modules/inspector
  copying ironic/drivers/modules/inspector/__init__.py -> build/lib/ironic/drivers/modules/inspector
  creating build/lib/ironic/tests/unit/drivers/modules/network
  copying ironic/tests/unit/drivers/modules/network/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules/network
  copying ironic/tests/unit/drivers/modules/network/test_neutron.py -> build/lib/ironic/tests/unit/drivers/modules/network
  copying ironic/tests/unit/drivers/modules/network/test_flat.py -> build/lib/ironic/tests/unit/drivers/modules/network
  copying ironic/tests/unit/drivers/modules/network/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/network
  copying ironic/tests/unit/drivers/modules/network/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/network
  creating build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/utils.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_volume_target.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_volume_connector.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_trait.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_portgroup.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_port.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_objects.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_notification.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_node_inventory.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_node_history.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_node.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_firmware.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_fields.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_deployment.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_deploy_template.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_conductor.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_chassis.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_bios.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_allocation.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/__init__.py -> build/lib/ironic/tests/unit/objects
  creating build/lib/ironic/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/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/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/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/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/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/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_volume.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_versions.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_shard.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_runbook.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_root.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_portgroup.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_port.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_node.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_inspection_rule.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_event.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_driver.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_conductor.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_collection.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/test_allocation.py -> build/lib/ironic/tests/unit/api/controllers/v1
  copying ironic/tests/unit/api/controllers/v1/__init__.py -> build/lib/ironic/tests/unit/api/controllers/v1
  creating build/lib/ironic/tests/unit/api/validation
  copying ironic/tests/unit/api/validation/test_validators.py -> build/lib/ironic/tests/unit/api/validation
  copying ironic/tests/unit/api/validation/__init__.py -> build/lib/ironic/tests/unit/api/validation
  copying ironic/version.py -> build/lib/ironic
  copying ironic/__init__.py -> build/lib/ironic
  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/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  creating build/lib/ironic/drivers/modules/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/conf
  copying ironic/conf/vnc.py -> build/lib/ironic/conf
  copying ironic/conf/types.py -> build/lib/ironic/conf
  copying ironic/conf/swift.py -> build/lib/ironic/conf
  copying ironic/conf/snmp.py -> build/lib/ironic/conf
  copying ironic/conf/service_catalog.py -> build/lib/ironic/conf
  copying ironic/conf/sensor_data.py -> build/lib/ironic/conf
  copying ironic/conf/redfish.py -> build/lib/ironic/conf
  copying ironic/conf/pxe.py -> build/lib/ironic/conf
  copying ironic/conf/opts.py -> build/lib/ironic/conf
  copying ironic/conf/oci.py -> build/lib/ironic/conf
  copying ironic/conf/nova.py -> build/lib/ironic/conf
  copying ironic/conf/neutron.py -> build/lib/ironic/conf
  copying ironic/conf/molds.py -> build/lib/ironic/conf
  copying ironic/conf/metrics.py -> build/lib/ironic/conf
  copying ironic/conf/mdns.py -> build/lib/ironic/conf
  copying ironic/conf/json_rpc.py -> build/lib/ironic/conf
  copying ironic/conf/irmc.py -> build/lib/ironic/conf
  copying ironic/conf/ipmi.py -> build/lib/ironic/conf
  copying ironic/conf/inventory.py -> build/lib/ironic/conf
  copying ironic/conf/inspector.py -> build/lib/ironic/conf
  copying ironic/conf/ilo.py -> build/lib/ironic/conf
  copying ironic/conf/healthcheck.py -> build/lib/ironic/conf
  copying ironic/conf/glance.py -> build/lib/ironic/conf
  copying ironic/conf/fake.py -> build/lib/ironic/conf
  copying ironic/conf/exception.py -> build/lib/ironic/conf
  copying ironic/conf/drac.py -> build/lib/ironic/conf
  copying ironic/conf/dnsmasq.py -> build/lib/ironic/conf
  copying ironic/conf/disk_utils.py -> build/lib/ironic/conf
  copying ironic/conf/dhcp.py -> build/lib/ironic/conf
  copying ironic/conf/deploy.py -> build/lib/ironic/conf
  copying ironic/conf/default.py -> build/lib/ironic/conf
  copying ironic/conf/database.py -> build/lib/ironic/conf
  copying ironic/conf/console.py -> build/lib/ironic/conf
  copying ironic/conf/conductor.py -> build/lib/ironic/conf
  copying ironic/conf/cinder.py -> build/lib/ironic/conf
  copying ironic/conf/auth.py -> build/lib/ironic/conf
  copying ironic/conf/audit.py -> build/lib/ironic/conf
  copying ironic/conf/api.py -> build/lib/ironic/conf
  copying ironic/conf/ansible.py -> build/lib/ironic/conf
  copying ironic/conf/anaconda.py -> build/lib/ironic/conf
  copying ironic/conf/agent_containers.py -> build/lib/ironic/conf
  copying ironic/conf/agent.py -> build/lib/ironic/conf
  copying ironic/conf/__init__.py -> build/lib/ironic/conf
  creating build/lib/ironic/tests/unit/drivers/modules/ilo
  copying ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo
  copying ironic/tests/unit/drivers/modules/ilo/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/ilo
  copying ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ilo
  copying ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ilo
  copying ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/ilo
  copying ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo
  copying ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/lib/ironic/tests/unit/drivers/modules/ilo
  copying ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/ilo
  copying ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/ilo
  copying ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/ilo
  copying ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ilo
  creating build/lib/ironic/tests/unit/drivers/modules/ibmc
  copying ironic/tests/unit/drivers/modules/ibmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc
  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/api/middleware
  copying ironic/api/middleware/parsable_error.py -> build/lib/ironic/api/middleware
  copying ironic/api/middleware/json_ext.py -> build/lib/ironic/api/middleware
  copying ironic/api/middleware/auth_public_routes.py -> build/lib/ironic/api/middleware
  copying ironic/api/middleware/__init__.py -> build/lib/ironic/api/middleware
  copying ironic/console/websocketproxy.py -> build/lib/ironic/console
  copying ironic/console/novncproxy_service.py -> build/lib/ironic/console
  copying ironic/console/__init__.py -> build/lib/ironic/console
  copying ironic/tests/unit/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/tests/unit/command
  copying ironic/tests/unit/command/test_status.py -> build/lib/ironic/tests/unit/command
  copying ironic/tests/unit/command/test_dbsync.py -> build/lib/ironic/tests/unit/command
  copying ironic/tests/unit/command/test_conductor.py -> build/lib/ironic/tests/unit/command
  copying ironic/tests/unit/command/__init__.py -> build/lib/ironic/tests/unit/command
  creating build/lib/ironic/tests/unit/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
  copying ironic/tests/base.py -> build/lib/ironic/tests
  copying ironic/tests/__init__.py -> build/lib/ironic/tests
  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/api/validation
  copying ironic/api/validation/validators.py -> build/lib/ironic/api/validation
  copying ironic/api/validation/__init__.py -> build/lib/ironic/api/validation
  creating build/lib/ironic/common/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
  copying ironic/tests/unit/console/__init__.py -> build/lib/ironic/tests/unit/console
  creating build/lib/ironic/wsgi
  copying ironic/wsgi/__init__.py -> build/lib/ironic/wsgi
  creating build/lib/ironic/drivers/modules/intel_ipmi
  copying ironic/drivers/modules/intel_ipmi/management.py -> build/lib/ironic/drivers/modules/intel_ipmi
  copying ironic/drivers/modules/intel_ipmi/__init__.py -> build/lib/ironic/drivers/modules/intel_ipmi
  creating build/lib/ironic/drivers/modules/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/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
  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/command
  copying ironic/command/status.py -> build/lib/ironic/command
  copying ironic/command/singleprocess.py -> build/lib/ironic/command
  copying ironic/command/pxe_filter.py -> build/lib/ironic/command
  copying ironic/command/novncproxy.py -> build/lib/ironic/command
  copying ironic/command/dbsync.py -> build/lib/ironic/command
  copying ironic/command/conductor.py -> build/lib/ironic/command
  copying ironic/command/api.py -> build/lib/ironic/command
  copying ironic/command/__init__.py -> build/lib/ironic/command
  creating build/lib/ironic/tests/unit/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
  running egg_info
  writing ironic.egg-info/PKG-INFO
  writing dependency_links to ironic.egg-info/dependency_links.txt
  writing entry points to ironic.egg-info/entry_points.txt
  writing requirements to ironic.egg-info/requires.txt
  writing top-level names to ironic.egg-info/top_level.txt
  writing pbr to ironic.egg-info/pbr.json
  [pbr] Processing SOURCES.txt
  [pbr] In git context, generating filelist from git
  warning: no previously-included files found matching '.gitignore'
  warning: no previously-included files found matching '.gitreview'
  warning: no previously-included files matching '*.pyc' found anywhere in distribution
  adding license file 'LICENSE'
  adding license file 'AUTHORS'
  writing manifest file 'ironic.egg-info/SOURCES.txt'
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.api.schemas.v1' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.api.schemas.v1' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.api.schemas.v1' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.api.schemas.v1' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.db.sqlalchemy.alembic' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.db.sqlalchemy.alembic' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.db.sqlalchemy.alembic' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.db.sqlalchemy.alembic' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.db.sqlalchemy.alembic.versions' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.db.sqlalchemy.alembic.versions' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.db.sqlalchemy.alembic.versions' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.db.sqlalchemy.alembic.versions' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.drivers.modules.ansible.playbooks' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.drivers.modules.ansible.playbooks' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.drivers.modules.ansible.playbooks' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.drivers.modules.ansible.playbooks' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.drivers.modules.ansible.playbooks.callback_plugins' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.drivers.modules.ansible.playbooks.callback_plugins' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.drivers.modules.ansible.playbooks.callback_plugins' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.drivers.modules.ansible.playbooks.callback_plugins' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.drivers.modules.ansible.playbooks.library' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.drivers.modules.ansible.playbooks.library' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.drivers.modules.ansible.playbooks.library' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.drivers.modules.ansible.playbooks.library' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.tests.json_samples' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.tests.json_samples' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.tests.json_samples' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.tests.json_samples' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.tests.unit.common.drive_samples' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.tests.unit.common.drive_samples' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.tests.unit.common.drive_samples' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.tests.unit.common.drive_samples' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.tests.unit.common.json_samples' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.tests.unit.common.json_samples' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.tests.unit.common.json_samples' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.tests.unit.common.json_samples' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning:     Installing 'ironic.tests.unit.drivers.modules.network.json_samples' as data is deprecated, please list it in `packages`.
      !!
      ############################
      # Package would be ignored #
      ############################
      Python recognizes 'ironic.tests.unit.drivers.modules.network.json_samples' as an importable package,
      but it is not listed in the `packages` configuration of setuptools.
      'ironic.tests.unit.drivers.modules.network.json_samples' has been automatically added to the distribution only
      because it may contain data files, but this behavior is likely to change
      in future versions of setuptools (and therefore is considered deprecated).
      Please make sure that 'ironic.tests.unit.drivers.modules.network.json_samples' is included as a package by using
      the `packages` configuration field or the proper discovery methods
      (for example by using `find_namespace_packages(...)`/`find_namespace:`
      instead of `find_packages(...)`/`find:`).
      You can read more about "package discovery" and "data files" on setuptools
      documentation page.
  !!
    check.warn(importable)
  copying ironic/tests/unit/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/api/schemas
  creating build/lib/ironic/api/schemas/v1
  copying ironic/api/schemas/v1/shard.py -> build/lib/ironic/api/schemas/v1
  copying ironic/tests/unit/api/test_acl_basic.yaml -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_rbac_legacy.yaml -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/lib/ironic/tests/unit/api
  creating build/lib/ironic/drivers/modules/ansible/playbooks
  copying ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks
  copying ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/lib/ironic/drivers/modules/ansible/playbooks
  copying ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks
  copying ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks
  copying ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks
  copying ironic/drivers/modules/ansible/playbooks/inventory -> build/lib/ironic/drivers/modules/ansible/playbooks
  copying ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks
  creating build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins
  copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins
  copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins
  creating build/lib/ironic/drivers/modules/ansible/playbooks/library
  copying ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library
  copying ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library
  copying ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults
  copying ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults
  copying ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files
  copying ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown
  creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks
  copying ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks
  copying ironic/db/sqlalchemy/alembic.ini -> build/lib/ironic/db/sqlalchemy
  creating build/lib/ironic/db/sqlalchemy/alembic
  copying ironic/db/sqlalchemy/alembic/README -> build/lib/ironic/db/sqlalchemy/alembic
  copying ironic/db/sqlalchemy/alembic/env.py -> build/lib/ironic/db/sqlalchemy/alembic
  copying ironic/db/sqlalchemy/alembic/script.py.mako -> build/lib/ironic/db/sqlalchemy/alembic
  creating build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/01f21d5e5195_increase_length_of_user_column.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/0ac0f39bc5aa_add_node_inventory_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/163040c5513f_add_firmware_information.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/1c14278d6e33_port_description.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/21c48150dea9_add_inspection_rules.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/4dbec778866e_create_node_shard.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/66bd9c5604d5_add_runbook_and_runbook_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/6e9cf6acce0b_node_disable_power_off.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/aa2384fee727_add_service_steps.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/d163df1bab88_remove_extra_fk_constraint_in_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/db/sqlalchemy/alembic/versions/fe222f476baf_add_parent_node_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions
  copying ironic/drivers/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/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/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/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/drivers/raid_config_schema.json -> build/lib/ironic/drivers
  creating build/lib/ironic/tests/json_samples
  copying ironic/tests/json_samples/network_data.json -> build/lib/ironic/tests/json_samples
  copying ironic/tests/json_samples/systems_collection_dual.json -> build/lib/ironic/tests/json_samples
  copying ironic/tests/json_samples/systems_collection_single.json -> build/lib/ironic/tests/json_samples
  copying ironic/drivers/modules/inspector/hooks/known_accelerators.yaml -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/common/grub_conf.template -> build/lib/ironic/common
  copying ironic/common/isolinux_config.template -> build/lib/ironic/common
  creating build/lib/ironic/tests/unit/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
  installing to build/bdist.linux-x86_64/wheel
  running install
  [pbr] Writing ChangeLog
  [pbr] Generating ChangeLog
  [pbr] ChangeLog complete (0.0s)
  [pbr] Generating AUTHORS
  [pbr] AUTHORS complete (0.0s)
  running install_lib
  creating build/bdist.linux-x86_64
  creating build/bdist.linux-x86_64/wheel
  creating build/bdist.linux-x86_64/wheel/ironic
  creating build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/api.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/conductor.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/dbsync.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/novncproxy.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/pxe_filter.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/singleprocess.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/status.py -> build/bdist.linux-x86_64/wheel/ironic/command
  creating build/bdist.linux-x86_64/wheel/ironic/wsgi
  copying build/lib/ironic/wsgi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/wsgi
  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
  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/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/console
  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/rfb
  copying build/lib/ironic/console/rfb/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb
  copying build/lib/ironic/console/rfb/auth.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb
  copying build/lib/ironic/console/rfb/authnone.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb
  copying build/lib/ironic/console/rfb/auths.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb
  creating build/bdist.linux-x86_64/wheel/ironic/console/container
  copying build/lib/ironic/console/container/ironic-console.container.template -> build/bdist.linux-x86_64/wheel/ironic/console/container
  copying build/lib/ironic/console/container/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/console/container
  copying build/lib/ironic/console/container/base.py -> build/bdist.linux-x86_64/wheel/ironic/console/container
  copying build/lib/ironic/console/container/fake.py -> build/bdist.linux-x86_64/wheel/ironic/console/container
  copying build/lib/ironic/console/container/systemd.py -> build/bdist.linux-x86_64/wheel/ironic/console/container
  creating build/bdist.linux-x86_64/wheel/ironic/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
  copying build/lib/ironic/common/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/args.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/async_steps.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/auth_basic.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/boot_devices.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/boot_modes.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/checksum_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/cinder.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/components.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/config.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/console_factory.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/context.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/dhcp_factory.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/driver_factory.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/exception.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/faults.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/fsm.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/hash_ring.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/i18n.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/image_publisher.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/image_service.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/images.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/indicator_states.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/keystone.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/kickstart_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/lessee_sources.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/mdns.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/metrics.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/metrics_collector.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/metrics_statsd.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/metrics_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/molds.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/network.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/neutron.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/nova.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/oci_registry.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/policy.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/profiler.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/pxe_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/qemu_img.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/raid.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/release_mappings.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/rpc.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/rpc_service.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/service.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/states.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/swift.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/utils.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/vnc.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/wsgi_service.py -> build/bdist.linux-x86_64/wheel/ironic/common
  creating build/bdist.linux-x86_64/wheel/ironic/common/glance_service
  copying build/lib/ironic/common/glance_service/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service
  copying build/lib/ironic/common/glance_service/image_service.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service
  copying build/lib/ironic/common/glance_service/service_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service
  creating build/bdist.linux-x86_64/wheel/ironic/common/json_rpc
  copying build/lib/ironic/common/json_rpc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc
  copying build/lib/ironic/common/json_rpc/client.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc
  copying build/lib/ironic/common/json_rpc/server.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc
  creating build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  copying build/lib/ironic/common/inspection_rules/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  copying build/lib/ironic/common/inspection_rules/actions.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  copying build/lib/ironic/common/inspection_rules/base.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  copying build/lib/ironic/common/inspection_rules/engine.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  copying build/lib/ironic/common/inspection_rules/operators.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  copying build/lib/ironic/common/inspection_rules/utils.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  copying build/lib/ironic/common/inspection_rules/validation.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  creating build/bdist.linux-x86_64/wheel/ironic/db
  creating build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  creating build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic
  creating build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/fe222f476baf_add_parent_node_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/d163df1bab88_remove_extra_fk_constraint_in_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/aa2384fee727_add_service_steps.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/6e9cf6acce0b_node_disable_power_off.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/66bd9c5604d5_add_runbook_and_runbook_step.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/4dbec778866e_create_node_shard.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/21c48150dea9_add_inspection_rules.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/1c14278d6e33_port_description.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/163040c5513f_add_firmware_information.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/0ac0f39bc5aa_add_node_inventory_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/01f21d5e5195_increase_length_of_user_column.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/script.py.mako -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic
  copying build/lib/ironic/db/sqlalchemy/alembic/env.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic
  copying build/lib/ironic/db/sqlalchemy/alembic/README -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic
  copying build/lib/ironic/db/sqlalchemy/alembic.ini -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/sqlalchemy/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/sqlalchemy/api.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/sqlalchemy/migration.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/sqlalchemy/models.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/db
  copying build/lib/ironic/db/api.py -> build/bdist.linux-x86_64/wheel/ironic/db
  copying build/lib/ironic/db/migration.py -> build/bdist.linux-x86_64/wheel/ironic/db
  creating build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/allocation.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/base.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/bios.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/chassis.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/conductor.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/deploy_template.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/deployment.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/fields.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/firmware.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/indirection.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/inspection_rule.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/node.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/node_history.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/node_inventory.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/notification.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/port.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/portgroup.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/runbook.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/trait.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/volume_connector.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  copying build/lib/ironic/objects/volume_target.py -> build/bdist.linux-x86_64/wheel/ironic/objects
  creating build/bdist.linux-x86_64/wheel/ironic/api
  creating build/bdist.linux-x86_64/wheel/ironic/api/schemas
  creating build/bdist.linux-x86_64/wheel/ironic/api/schemas/v1
  copying build/lib/ironic/api/schemas/v1/shard.py -> build/bdist.linux-x86_64/wheel/ironic/api/schemas/v1
  creating build/bdist.linux-x86_64/wheel/ironic/api/validation
  copying build/lib/ironic/api/validation/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/api/validation
  copying build/lib/ironic/api/validation/validators.py -> build/bdist.linux-x86_64/wheel/ironic/api/validation
  creating build/bdist.linux-x86_64/wheel/ironic/api/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/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
  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/hacking
  copying build/lib/ironic/hacking/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/hacking
  copying build/lib/ironic/hacking/checks.py -> build/bdist.linux-x86_64/wheel/ironic/hacking
  creating build/bdist.linux-x86_64/wheel/ironic/pxe_filter
  copying build/lib/ironic/pxe_filter/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter
  copying build/lib/ironic/pxe_filter/dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter
  copying build/lib/ironic/pxe_filter/service.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter
  creating build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/raid_config_schema.json -> build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/base.py -> build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/drac.py -> build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/fake_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/generic.py -> build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/hardware_type.py -> build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/ilo.py -> build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/intel_ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/irmc.py -> build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/redfish.py -> build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/snmp.py -> build/bdist.linux-x86_64/wheel/ironic/drivers
  copying build/lib/ironic/drivers/utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  copying build/lib/ironic/drivers/modules/pxe_grub_config.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  copying build/lib/ironic/drivers/modules/pxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  copying build/lib/ironic/drivers/modules/ks.cfg.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  copying build/lib/ironic/drivers/modules/ipxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  copying build/lib/ironic/drivers/modules/initial_grub_cfg.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  copying build/lib/ironic/drivers/modules/boot.ipxe -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  copying build/lib/ironic/drivers/modules/storage/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  copying build/lib/ironic/drivers/modules/storage/cinder.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  copying build/lib/ironic/drivers/modules/storage/external.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  copying build/lib/ironic/drivers/modules/storage/noop.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/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/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/inspector
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/known_accelerators.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/accelerators.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/architecture.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/base.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/boot_mode.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/cpu_capabilities.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/extra_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/local_link_connection.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/memory.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/parse_lldp.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/pci_devices.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/ports.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/raid_device.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/ramdisk_error.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/root_device.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/validate_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/agent.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/client.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/interface.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/lldp_parsers.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/lldp_tlvs.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network
  copying build/lib/ironic/drivers/modules/network/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network
  copying build/lib/ironic/drivers/modules/network/common.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network
  copying build/lib/ironic/drivers/modules/network/flat.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network
  copying build/lib/ironic/drivers/modules/network/neutron.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network
  copying build/lib/ironic/drivers/modules/network/noop.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/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
  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/ansible
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/files
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/files
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library
  copying build/lib/ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library
  copying build/lib/ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library
  copying build/lib/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins
  copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins
  copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins
  copying build/lib/ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/inventory -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible
  copying build/lib/ironic/drivers/modules/ansible/deploy.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/bios.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/boot.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/inspect.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/raid.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/vendor_passthru.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/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/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/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/common
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show_ipv6.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show_ipv6.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show_ipv6.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/drive_samples
  copying build/lib/ironic/tests/unit/common/drive_samples/config_drive -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/drive_samples
  copying build/lib/ironic/tests/unit/common/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_args.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_checksum_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_cinder.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_context.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_driver_factory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_exception.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_fsm.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_glance_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_hash_ring.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_image_publisher.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_image_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_images.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_inspection_rule.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_json_rpc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_keystone.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_kickstart_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_mdns.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_molds.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_network.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_neutron.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_nova.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_oci_registry.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_policy.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_pxe_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_qemu_img.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_release_mappings.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_rpc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_states.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_swift.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_vnc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_wsgi_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/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
  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/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/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/objects
  copying build/lib/ironic/tests/unit/objects/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_allocation.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_bios.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_chassis.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_deploy_template.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_deployment.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_fields.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_firmware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_node.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_node_history.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_node_inventory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_notification.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_objects.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_port.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_portgroup.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_trait.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_volume_connector.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/test_volume_target.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  copying build/lib/ironic/tests/unit/objects/utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/objects
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/console
  copying build/lib/ironic/tests/unit/console/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/container
  copying build/lib/ironic/tests/unit/console/container/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/container
  copying build/lib/ironic/tests/unit/console/container/test_console_container.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/container
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb
  copying build/lib/ironic/tests/unit/console/rfb/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb
  copying build/lib/ironic/tests/unit/console/rfb/test_auth.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb
  copying build/lib/ironic/tests/unit/console/rfb/test_authnone.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/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/conf
  copying build/lib/ironic/tests/unit/conf/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf
  copying build/lib/ironic/tests/unit/conf/test_auth.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf
  copying build/lib/ironic/tests/unit/conf/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf
  copying build/lib/ironic/tests/unit/conf/test_types.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/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/api
  copying build/lib/ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_rbac_legacy.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_acl_basic.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation
  copying build/lib/ironic/tests/unit/api/validation/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation
  copying build/lib/ironic/tests/unit/api/validation/test_validators.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_allocation.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_collection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_driver.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_event.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_inspection_rule.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_node.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_port.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_portgroup.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_root.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_runbook.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_shard.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_versions.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers
  copying build/lib/ironic/tests/unit/api/controllers/test_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers
  copying build/lib/ironic/tests/unit/api/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_acl.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_audit.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_functions.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_healthcheck.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_hooks.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_method.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_middleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_ospmiddleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_proxy_middleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_root.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/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
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/storage
  copying build/lib/ironic/tests/unit/drivers/modules/storage/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/storage
  copying build/lib/ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/storage
  copying build/lib/ironic/tests/unit/drivers/modules/storage/test_external.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/storage
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/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/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/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/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/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/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/test_boot.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/test_inspect.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ansible
  copying build/lib/ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ansible
  copying build/lib/ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ansible
  copying build/lib/ironic/tests/unit/drivers/modules/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_agent.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_agent_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_agent_client.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_agent_power.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_console_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_deploy_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_graphical_console.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_image_cache.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_image_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_inspect_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_ipmitool.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_ipxe.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_noop.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_noop_mgmt.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_pxe.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_ramdisk.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  copying build/lib/ironic/tests/unit/drivers/modules/test_snmp.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi
  copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi
  copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi
  copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi
  copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/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/inspector
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_agent.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_client.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_interface.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_accelerators.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_architecture.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_boot_mode.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_cpu_capabilities.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_extra_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_local_link_connection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_memory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_parse_lldp.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_pci_devices.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_ports.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_raid_device.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_ramdisk_error.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_root_device.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_validate_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks
  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
  running install_data
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.data
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.data/data
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.data/data/etc
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.data/data/etc/ironic
  copying etc/ironic/rootwrap.conf -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.data/data/etc/ironic
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.data/data/etc/ironic/rootwrap.d
  copying etc/ironic/rootwrap.d/ironic-utils.filters -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.data/data/etc/ironic/rootwrap.d/
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.data/data/share
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.data/data/share/ironic
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.data/data/share/ironic/vnc-container
  copying tools/vnc-container/README.rst -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.data/data/share/ironic/vnc-container/
  copying tools/vnc-container/Containerfile -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.data/data/share/ironic/vnc-container/
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.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.dev138.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.dev138.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.dev138.data/data/share/ironic/vnc-container/bin
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.data/data/share/ironic/vnc-container/drivers
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.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.dev138.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.dev138.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.dev138-py3.9.egg-info
  running install_scripts
  Installing ironic-api-wsgi script to build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev138.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.dev138.dist-info/WHEEL
  creating '/builddir/build/BUILD/ironic-29.1.0.dev138/.pyproject-builddir/pip-wheel-ccyom52s/tmp_2vpp52p/ironic-29.1.0.dev138-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
  adding 'ironic/__init__.py'
  adding 'ironic/version.py'
  adding 'ironic/api/__init__.py'
  adding 'ironic/api/app.py'
  adding 'ironic/api/config.py'
  adding 'ironic/api/functions.py'
  adding 'ironic/api/hooks.py'
  adding 'ironic/api/method.py'
  adding 'ironic/api/wsgi.py'
  adding 'ironic/api/controllers/__init__.py'
  adding 'ironic/api/controllers/base.py'
  adding 'ironic/api/controllers/link.py'
  adding 'ironic/api/controllers/root.py'
  adding 'ironic/api/controllers/version.py'
  adding 'ironic/api/controllers/v1/__init__.py'
  adding 'ironic/api/controllers/v1/allocation.py'
  adding 'ironic/api/controllers/v1/bios.py'
  adding 'ironic/api/controllers/v1/chassis.py'
  adding 'ironic/api/controllers/v1/collection.py'
  adding 'ironic/api/controllers/v1/conductor.py'
  adding 'ironic/api/controllers/v1/deploy_template.py'
  adding 'ironic/api/controllers/v1/driver.py'
  adding 'ironic/api/controllers/v1/event.py'
  adding 'ironic/api/controllers/v1/firmware.py'
  adding 'ironic/api/controllers/v1/inspection_rule.py'
  adding 'ironic/api/controllers/v1/network-data-schema.json'
  adding 'ironic/api/controllers/v1/node.py'
  adding 'ironic/api/controllers/v1/notification_utils.py'
  adding 'ironic/api/controllers/v1/port.py'
  adding 'ironic/api/controllers/v1/portgroup.py'
  adding 'ironic/api/controllers/v1/ramdisk.py'
  adding 'ironic/api/controllers/v1/runbook.py'
  adding 'ironic/api/controllers/v1/shard.py'
  adding 'ironic/api/controllers/v1/utils.py'
  adding 'ironic/api/controllers/v1/versions.py'
  adding 'ironic/api/controllers/v1/volume.py'
  adding 'ironic/api/controllers/v1/volume_connector.py'
  adding 'ironic/api/controllers/v1/volume_target.py'
  adding 'ironic/api/middleware/__init__.py'
  adding 'ironic/api/middleware/auth_public_routes.py'
  adding 'ironic/api/middleware/json_ext.py'
  adding 'ironic/api/middleware/parsable_error.py'
  adding 'ironic/api/schemas/v1/shard.py'
  adding 'ironic/api/validation/__init__.py'
  adding 'ironic/api/validation/validators.py'
  adding 'ironic/command/__init__.py'
  adding 'ironic/command/api.py'
  adding 'ironic/command/conductor.py'
  adding 'ironic/command/dbsync.py'
  adding 'ironic/command/novncproxy.py'
  adding 'ironic/command/pxe_filter.py'
  adding 'ironic/command/singleprocess.py'
  adding 'ironic/command/status.py'
  adding 'ironic/common/__init__.py'
  adding 'ironic/common/args.py'
  adding 'ironic/common/async_steps.py'
  adding 'ironic/common/auth_basic.py'
  adding 'ironic/common/boot_devices.py'
  adding 'ironic/common/boot_modes.py'
  adding 'ironic/common/checksum_utils.py'
  adding 'ironic/common/cinder.py'
  adding 'ironic/common/components.py'
  adding 'ironic/common/config.py'
  adding 'ironic/common/console_factory.py'
  adding 'ironic/common/context.py'
  adding 'ironic/common/dhcp_factory.py'
  adding 'ironic/common/driver_factory.py'
  adding 'ironic/common/exception.py'
  adding 'ironic/common/faults.py'
  adding 'ironic/common/fsm.py'
  adding 'ironic/common/grub_conf.template'
  adding 'ironic/common/hash_ring.py'
  adding 'ironic/common/i18n.py'
  adding 'ironic/common/image_publisher.py'
  adding 'ironic/common/image_service.py'
  adding 'ironic/common/images.py'
  adding 'ironic/common/indicator_states.py'
  adding 'ironic/common/isolinux_config.template'
  adding 'ironic/common/keystone.py'
  adding 'ironic/common/kickstart_utils.py'
  adding 'ironic/common/lessee_sources.py'
  adding 'ironic/common/mdns.py'
  adding 'ironic/common/metrics.py'
  adding 'ironic/common/metrics_collector.py'
  adding 'ironic/common/metrics_statsd.py'
  adding 'ironic/common/metrics_utils.py'
  adding 'ironic/common/molds.py'
  adding 'ironic/common/network.py'
  adding 'ironic/common/neutron.py'
  adding 'ironic/common/nova.py'
  adding 'ironic/common/oci_registry.py'
  adding 'ironic/common/policy.py'
  adding 'ironic/common/profiler.py'
  adding 'ironic/common/pxe_utils.py'
  adding 'ironic/common/qemu_img.py'
  adding 'ironic/common/raid.py'
  adding 'ironic/common/release_mappings.py'
  adding 'ironic/common/rpc.py'
  adding 'ironic/common/rpc_service.py'
  adding 'ironic/common/service.py'
  adding 'ironic/common/states.py'
  adding 'ironic/common/swift.py'
  adding 'ironic/common/utils.py'
  adding 'ironic/common/vnc.py'
  adding 'ironic/common/wsgi_service.py'
  adding 'ironic/common/glance_service/__init__.py'
  adding 'ironic/common/glance_service/image_service.py'
  adding 'ironic/common/glance_service/service_utils.py'
  adding 'ironic/common/inspection_rules/__init__.py'
  adding 'ironic/common/inspection_rules/actions.py'
  adding 'ironic/common/inspection_rules/base.py'
  adding 'ironic/common/inspection_rules/engine.py'
  adding 'ironic/common/inspection_rules/operators.py'
  adding 'ironic/common/inspection_rules/utils.py'
  adding 'ironic/common/inspection_rules/validation.py'
  adding 'ironic/common/json_rpc/__init__.py'
  adding 'ironic/common/json_rpc/client.py'
  adding 'ironic/common/json_rpc/server.py'
  adding 'ironic/conductor/__init__.py'
  adding 'ironic/conductor/allocations.py'
  adding 'ironic/conductor/base_manager.py'
  adding 'ironic/conductor/cleaning.py'
  adding 'ironic/conductor/deployments.py'
  adding 'ironic/conductor/inspection.py'
  adding 'ironic/conductor/manager.py'
  adding 'ironic/conductor/notification_utils.py'
  adding 'ironic/conductor/periodics.py'
  adding 'ironic/conductor/rpc_service.py'
  adding 'ironic/conductor/rpcapi.py'
  adding 'ironic/conductor/servicing.py'
  adding 'ironic/conductor/steps.py'
  adding 'ironic/conductor/task_manager.py'
  adding 'ironic/conductor/utils.py'
  adding 'ironic/conductor/verify.py'
  adding 'ironic/conf/__init__.py'
  adding 'ironic/conf/agent.py'
  adding 'ironic/conf/agent_containers.py'
  adding 'ironic/conf/anaconda.py'
  adding 'ironic/conf/ansible.py'
  adding 'ironic/conf/api.py'
  adding 'ironic/conf/audit.py'
  adding 'ironic/conf/auth.py'
  adding 'ironic/conf/cinder.py'
  adding 'ironic/conf/conductor.py'
  adding 'ironic/conf/console.py'
  adding 'ironic/conf/database.py'
  adding 'ironic/conf/default.py'
  adding 'ironic/conf/deploy.py'
  adding 'ironic/conf/dhcp.py'
  adding 'ironic/conf/disk_utils.py'
  adding 'ironic/conf/dnsmasq.py'
  adding 'ironic/conf/drac.py'
  adding 'ironic/conf/exception.py'
  adding 'ironic/conf/fake.py'
  adding 'ironic/conf/glance.py'
  adding 'ironic/conf/healthcheck.py'
  adding 'ironic/conf/ilo.py'
  adding 'ironic/conf/inspector.py'
  adding 'ironic/conf/inventory.py'
  adding 'ironic/conf/ipmi.py'
  adding 'ironic/conf/irmc.py'
  adding 'ironic/conf/json_rpc.py'
  adding 'ironic/conf/mdns.py'
  adding 'ironic/conf/metrics.py'
  adding 'ironic/conf/molds.py'
  adding 'ironic/conf/neutron.py'
  adding 'ironic/conf/nova.py'
  adding 'ironic/conf/oci.py'
  adding 'ironic/conf/opts.py'
  adding 'ironic/conf/pxe.py'
  adding 'ironic/conf/redfish.py'
  adding 'ironic/conf/sensor_data.py'
  adding 'ironic/conf/service_catalog.py'
  adding 'ironic/conf/snmp.py'
  adding 'ironic/conf/swift.py'
  adding 'ironic/conf/types.py'
  adding 'ironic/conf/vnc.py'
  adding 'ironic/console/__init__.py'
  adding 'ironic/console/novncproxy_service.py'
  adding 'ironic/console/websocketproxy.py'
  adding 'ironic/console/container/__init__.py'
  adding 'ironic/console/container/base.py'
  adding 'ironic/console/container/fake.py'
  adding 'ironic/console/container/ironic-console.container.template'
  adding 'ironic/console/container/systemd.py'
  adding 'ironic/console/rfb/__init__.py'
  adding 'ironic/console/rfb/auth.py'
  adding 'ironic/console/rfb/authnone.py'
  adding 'ironic/console/rfb/auths.py'
  adding 'ironic/console/securityproxy/__init__.py'
  adding 'ironic/console/securityproxy/base.py'
  adding 'ironic/console/securityproxy/rfb.py'
  adding 'ironic/db/__init__.py'
  adding 'ironic/db/api.py'
  adding 'ironic/db/migration.py'
  adding 'ironic/db/sqlalchemy/__init__.py'
  adding 'ironic/db/sqlalchemy/alembic.ini'
  adding 'ironic/db/sqlalchemy/api.py'
  adding 'ironic/db/sqlalchemy/migration.py'
  adding 'ironic/db/sqlalchemy/models.py'
  adding 'ironic/db/sqlalchemy/alembic/README'
  adding 'ironic/db/sqlalchemy/alembic/env.py'
  adding 'ironic/db/sqlalchemy/alembic/script.py.mako'
  adding 'ironic/db/sqlalchemy/alembic/versions/01f21d5e5195_increase_length_of_user_column.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/0ac0f39bc5aa_add_node_inventory_table.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/163040c5513f_add_firmware_information.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/1c14278d6e33_port_description.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/21c48150dea9_add_inspection_rules.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/4dbec778866e_create_node_shard.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/66bd9c5604d5_add_runbook_and_runbook_step.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/6e9cf6acce0b_node_disable_power_off.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/aa2384fee727_add_service_steps.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/d163df1bab88_remove_extra_fk_constraint_in_.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py'
  adding 'ironic/db/sqlalchemy/alembic/versions/fe222f476baf_add_parent_node_field.py'
  adding 'ironic/dhcp/__init__.py'
  adding 'ironic/dhcp/base.py'
  adding 'ironic/dhcp/dnsmasq.py'
  adding 'ironic/dhcp/neutron.py'
  adding 'ironic/dhcp/none.py'
  adding 'ironic/drivers/__init__.py'
  adding 'ironic/drivers/base.py'
  adding 'ironic/drivers/drac.py'
  adding 'ironic/drivers/fake_hardware.py'
  adding 'ironic/drivers/generic.py'
  adding 'ironic/drivers/hardware_type.py'
  adding 'ironic/drivers/ilo.py'
  adding 'ironic/drivers/intel_ipmi.py'
  adding 'ironic/drivers/ipmi.py'
  adding 'ironic/drivers/irmc.py'
  adding 'ironic/drivers/raid_config_schema.json'
  adding 'ironic/drivers/redfish.py'
  adding 'ironic/drivers/snmp.py'
  adding 'ironic/drivers/utils.py'
  adding 'ironic/drivers/modules/__init__.py'
  adding 'ironic/drivers/modules/agent.py'
  adding 'ironic/drivers/modules/agent_base.py'
  adding 'ironic/drivers/modules/agent_client.py'
  adding 'ironic/drivers/modules/agent_power.py'
  adding 'ironic/drivers/modules/boot.ipxe'
  adding 'ironic/drivers/modules/boot_mode_utils.py'
  adding 'ironic/drivers/modules/console_utils.py'
  adding 'ironic/drivers/modules/deploy_utils.py'
  adding 'ironic/drivers/modules/fake.py'
  adding 'ironic/drivers/modules/graphical_console.py'
  adding 'ironic/drivers/modules/image_cache.py'
  adding 'ironic/drivers/modules/image_utils.py'
  adding 'ironic/drivers/modules/initial_grub_cfg.template'
  adding 'ironic/drivers/modules/inspect_utils.py'
  adding 'ironic/drivers/modules/ipmitool.py'
  adding 'ironic/drivers/modules/ipxe.py'
  adding 'ironic/drivers/modules/ipxe_config.template'
  adding 'ironic/drivers/modules/ks.cfg.template'
  adding 'ironic/drivers/modules/noop.py'
  adding 'ironic/drivers/modules/noop_mgmt.py'
  adding 'ironic/drivers/modules/pxe.py'
  adding 'ironic/drivers/modules/pxe_base.py'
  adding 'ironic/drivers/modules/pxe_config.template'
  adding 'ironic/drivers/modules/pxe_grub_config.template'
  adding 'ironic/drivers/modules/ramdisk.py'
  adding 'ironic/drivers/modules/snmp.py'
  adding 'ironic/drivers/modules/ansible/__init__.py'
  adding 'ironic/drivers/modules/ansible/deploy.py'
  adding 'ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/ansible.cfg'
  adding 'ironic/drivers/modules/ansible/playbooks/clean.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/clean_steps.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/deploy.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/inventory'
  adding 'ironic/drivers/modules/ansible/playbooks/shutdown.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini'
  adding 'ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py'
  adding 'ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py'
  adding 'ironic/drivers/modules/ansible/playbooks/library/root_hints.py'
  adding 'ironic/drivers/modules/ansible/playbooks/library/stream_url.py'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml'
  adding 'ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml'
  adding 'ironic/drivers/modules/drac/__init__.py'
  adding 'ironic/drivers/modules/drac/bios.py'
  adding 'ironic/drivers/modules/drac/boot.py'
  adding 'ironic/drivers/modules/drac/inspect.py'
  adding 'ironic/drivers/modules/drac/management.py'
  adding 'ironic/drivers/modules/drac/power.py'
  adding 'ironic/drivers/modules/drac/raid.py'
  adding 'ironic/drivers/modules/drac/utils.py'
  adding 'ironic/drivers/modules/drac/vendor_passthru.py'
  adding 'ironic/drivers/modules/ilo/__init__.py'
  adding 'ironic/drivers/modules/ilo/bios.py'
  adding 'ironic/drivers/modules/ilo/boot.py'
  adding 'ironic/drivers/modules/ilo/common.py'
  adding 'ironic/drivers/modules/ilo/console.py'
  adding 'ironic/drivers/modules/ilo/firmware_processor.py'
  adding 'ironic/drivers/modules/ilo/inspect.py'
  adding 'ironic/drivers/modules/ilo/management.py'
  adding 'ironic/drivers/modules/ilo/power.py'
  adding 'ironic/drivers/modules/ilo/raid.py'
  adding 'ironic/drivers/modules/ilo/vendor.py'
  adding 'ironic/drivers/modules/inspector/__init__.py'
  adding 'ironic/drivers/modules/inspector/agent.py'
  adding 'ironic/drivers/modules/inspector/client.py'
  adding 'ironic/drivers/modules/inspector/interface.py'
  adding 'ironic/drivers/modules/inspector/lldp_parsers.py'
  adding 'ironic/drivers/modules/inspector/lldp_tlvs.py'
  adding 'ironic/drivers/modules/inspector/hooks/__init__.py'
  adding 'ironic/drivers/modules/inspector/hooks/accelerators.py'
  adding 'ironic/drivers/modules/inspector/hooks/architecture.py'
  adding 'ironic/drivers/modules/inspector/hooks/base.py'
  adding 'ironic/drivers/modules/inspector/hooks/boot_mode.py'
  adding 'ironic/drivers/modules/inspector/hooks/cpu_capabilities.py'
  adding 'ironic/drivers/modules/inspector/hooks/extra_hardware.py'
  adding 'ironic/drivers/modules/inspector/hooks/known_accelerators.yaml'
  adding 'ironic/drivers/modules/inspector/hooks/local_link_connection.py'
  adding 'ironic/drivers/modules/inspector/hooks/memory.py'
  adding 'ironic/drivers/modules/inspector/hooks/parse_lldp.py'
  adding 'ironic/drivers/modules/inspector/hooks/pci_devices.py'
  adding 'ironic/drivers/modules/inspector/hooks/physical_network.py'
  adding 'ironic/drivers/modules/inspector/hooks/ports.py'
  adding 'ironic/drivers/modules/inspector/hooks/raid_device.py'
  adding 'ironic/drivers/modules/inspector/hooks/ramdisk_error.py'
  adding 'ironic/drivers/modules/inspector/hooks/root_device.py'
  adding 'ironic/drivers/modules/inspector/hooks/validate_interfaces.py'
  adding 'ironic/drivers/modules/intel_ipmi/__init__.py'
  adding 'ironic/drivers/modules/intel_ipmi/management.py'
  adding 'ironic/drivers/modules/irmc/__init__.py'
  adding 'ironic/drivers/modules/irmc/bios.py'
  adding 'ironic/drivers/modules/irmc/boot.py'
  adding 'ironic/drivers/modules/irmc/common.py'
  adding 'ironic/drivers/modules/irmc/inspect.py'
  adding 'ironic/drivers/modules/irmc/management.py'
  adding 'ironic/drivers/modules/irmc/power.py'
  adding 'ironic/drivers/modules/irmc/raid.py'
  adding 'ironic/drivers/modules/irmc/vendor.py'
  adding 'ironic/drivers/modules/network/__init__.py'
  adding 'ironic/drivers/modules/network/common.py'
  adding 'ironic/drivers/modules/network/flat.py'
  adding 'ironic/drivers/modules/network/neutron.py'
  adding 'ironic/drivers/modules/network/noop.py'
  adding 'ironic/drivers/modules/redfish/__init__.py'
  adding 'ironic/drivers/modules/redfish/bios.py'
  adding 'ironic/drivers/modules/redfish/boot.py'
  adding 'ironic/drivers/modules/redfish/firmware.py'
  adding 'ironic/drivers/modules/redfish/firmware_utils.py'
  adding 'ironic/drivers/modules/redfish/graphical_console.py'
  adding 'ironic/drivers/modules/redfish/inspect.py'
  adding 'ironic/drivers/modules/redfish/management.py'
  adding 'ironic/drivers/modules/redfish/power.py'
  adding 'ironic/drivers/modules/redfish/raid.py'
  adding 'ironic/drivers/modules/redfish/utils.py'
  adding 'ironic/drivers/modules/redfish/vendor.py'
  adding 'ironic/drivers/modules/storage/__init__.py'
  adding 'ironic/drivers/modules/storage/cinder.py'
  adding 'ironic/drivers/modules/storage/external.py'
  adding 'ironic/drivers/modules/storage/noop.py'
  adding 'ironic/hacking/__init__.py'
  adding 'ironic/hacking/checks.py'
  adding 'ironic/objects/__init__.py'
  adding 'ironic/objects/allocation.py'
  adding 'ironic/objects/base.py'
  adding 'ironic/objects/bios.py'
  adding 'ironic/objects/chassis.py'
  adding 'ironic/objects/conductor.py'
  adding 'ironic/objects/deploy_template.py'
  adding 'ironic/objects/deployment.py'
  adding 'ironic/objects/fields.py'
  adding 'ironic/objects/firmware.py'
  adding 'ironic/objects/indirection.py'
  adding 'ironic/objects/inspection_rule.py'
  adding 'ironic/objects/node.py'
  adding 'ironic/objects/node_history.py'
  adding 'ironic/objects/node_inventory.py'
  adding 'ironic/objects/notification.py'
  adding 'ironic/objects/port.py'
  adding 'ironic/objects/portgroup.py'
  adding 'ironic/objects/runbook.py'
  adding 'ironic/objects/trait.py'
  adding 'ironic/objects/volume_connector.py'
  adding 'ironic/objects/volume_target.py'
  adding 'ironic/pxe_filter/__init__.py'
  adding 'ironic/pxe_filter/dnsmasq.py'
  adding 'ironic/pxe_filter/service.py'
  adding 'ironic/tests/__init__.py'
  adding 'ironic/tests/base.py'
  adding 'ironic/tests/functional/__init__.py'
  adding 'ironic/tests/json_samples/network_data.json'
  adding 'ironic/tests/json_samples/systems_collection_dual.json'
  adding 'ironic/tests/json_samples/systems_collection_single.json'
  adding 'ironic/tests/unit/__init__.py'
  adding 'ironic/tests/unit/policy_fixture.py'
  adding 'ironic/tests/unit/raid_constants.py'
  adding 'ironic/tests/unit/stubs.py'
  adding 'ironic/tests/unit/test_base.py'
  adding 'ironic/tests/unit/api/__init__.py'
  adding 'ironic/tests/unit/api/base.py'
  adding 'ironic/tests/unit/api/test_acl.py'
  adding 'ironic/tests/unit/api/test_acl_basic.yaml'
  adding 'ironic/tests/unit/api/test_audit.py'
  adding 'ironic/tests/unit/api/test_functions.py'
  adding 'ironic/tests/unit/api/test_healthcheck.py'
  adding 'ironic/tests/unit/api/test_hooks.py'
  adding 'ironic/tests/unit/api/test_method.py'
  adding 'ironic/tests/unit/api/test_middleware.py'
  adding 'ironic/tests/unit/api/test_ospmiddleware.py'
  adding 'ironic/tests/unit/api/test_proxy_middleware.py'
  adding 'ironic/tests/unit/api/test_rbac_legacy.yaml'
  adding 'ironic/tests/unit/api/test_rbac_project_scoped.yaml'
  adding 'ironic/tests/unit/api/test_rbac_system_scoped.yaml'
  adding 'ironic/tests/unit/api/test_root.py'
  adding 'ironic/tests/unit/api/utils.py'
  adding 'ironic/tests/unit/api/controllers/__init__.py'
  adding 'ironic/tests/unit/api/controllers/test_base.py'
  adding 'ironic/tests/unit/api/controllers/v1/__init__.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_allocation.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_chassis.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_collection.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_conductor.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_deploy_template.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_driver.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_event.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_inspection_rule.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_node.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_notification_utils.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_port.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_portgroup.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_ramdisk.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_root.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_runbook.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_shard.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_utils.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_versions.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_volume.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_volume_connector.py'
  adding 'ironic/tests/unit/api/controllers/v1/test_volume_target.py'
  adding 'ironic/tests/unit/api/validation/__init__.py'
  adding 'ironic/tests/unit/api/validation/test_validators.py'
  adding 'ironic/tests/unit/command/__init__.py'
  adding 'ironic/tests/unit/command/test_conductor.py'
  adding 'ironic/tests/unit/command/test_dbsync.py'
  adding 'ironic/tests/unit/command/test_status.py'
  adding 'ironic/tests/unit/common/__init__.py'
  adding 'ironic/tests/unit/common/test_args.py'
  adding 'ironic/tests/unit/common/test_checksum_utils.py'
  adding 'ironic/tests/unit/common/test_cinder.py'
  adding 'ironic/tests/unit/common/test_context.py'
  adding 'ironic/tests/unit/common/test_driver_factory.py'
  adding 'ironic/tests/unit/common/test_exception.py'
  adding 'ironic/tests/unit/common/test_fsm.py'
  adding 'ironic/tests/unit/common/test_glance_service.py'
  adding 'ironic/tests/unit/common/test_hash_ring.py'
  adding 'ironic/tests/unit/common/test_image_publisher.py'
  adding 'ironic/tests/unit/common/test_image_service.py'
  adding 'ironic/tests/unit/common/test_images.py'
  adding 'ironic/tests/unit/common/test_inspection_rule.py'
  adding 'ironic/tests/unit/common/test_json_rpc.py'
  adding 'ironic/tests/unit/common/test_keystone.py'
  adding 'ironic/tests/unit/common/test_kickstart_utils.py'
  adding 'ironic/tests/unit/common/test_mdns.py'
  adding 'ironic/tests/unit/common/test_molds.py'
  adding 'ironic/tests/unit/common/test_network.py'
  adding 'ironic/tests/unit/common/test_neutron.py'
  adding 'ironic/tests/unit/common/test_nova.py'
  adding 'ironic/tests/unit/common/test_oci_registry.py'
  adding 'ironic/tests/unit/common/test_policy.py'
  adding 'ironic/tests/unit/common/test_pxe_utils.py'
  adding 'ironic/tests/unit/common/test_qemu_img.py'
  adding 'ironic/tests/unit/common/test_raid.py'
  adding 'ironic/tests/unit/common/test_release_mappings.py'
  adding 'ironic/tests/unit/common/test_rpc.py'
  adding 'ironic/tests/unit/common/test_states.py'
  adding 'ironic/tests/unit/common/test_swift.py'
  adding 'ironic/tests/unit/common/test_utils.py'
  adding 'ironic/tests/unit/common/test_vnc.py'
  adding 'ironic/tests/unit/common/test_wsgi_service.py'
  adding 'ironic/tests/unit/common/drive_samples/config_drive'
  adding 'ironic/tests/unit/common/json_samples/neutron_network_show.json'
  adding 'ironic/tests/unit/common/json_samples/neutron_network_show_ipv6.json'
  adding 'ironic/tests/unit/common/json_samples/neutron_port_show.json'
  adding 'ironic/tests/unit/common/json_samples/neutron_port_show_ipv6.json'
  adding 'ironic/tests/unit/common/json_samples/neutron_subnet_show.json'
  adding 'ironic/tests/unit/common/json_samples/neutron_subnet_show_ipv6.json'
  adding 'ironic/tests/unit/conductor/__init__.py'
  adding 'ironic/tests/unit/conductor/mgr_utils.py'
  adding 'ironic/tests/unit/conductor/test_allocations.py'
  adding 'ironic/tests/unit/conductor/test_base_manager.py'
  adding 'ironic/tests/unit/conductor/test_cleaning.py'
  adding 'ironic/tests/unit/conductor/test_deployments.py'
  adding 'ironic/tests/unit/conductor/test_inspection.py'
  adding 'ironic/tests/unit/conductor/test_manager.py'
  adding 'ironic/tests/unit/conductor/test_notification_utils.py'
  adding 'ironic/tests/unit/conductor/test_periodics.py'
  adding 'ironic/tests/unit/conductor/test_rpc_service.py'
  adding 'ironic/tests/unit/conductor/test_rpcapi.py'
  adding 'ironic/tests/unit/conductor/test_servicing.py'
  adding 'ironic/tests/unit/conductor/test_steps.py'
  adding 'ironic/tests/unit/conductor/test_task_manager.py'
  adding 'ironic/tests/unit/conductor/test_utils.py'
  adding 'ironic/tests/unit/conductor/test_verify.py'
  adding 'ironic/tests/unit/conf/__init__.py'
  adding 'ironic/tests/unit/conf/test_auth.py'
  adding 'ironic/tests/unit/conf/test_conductor.py'
  adding 'ironic/tests/unit/conf/test_types.py'
  adding 'ironic/tests/unit/console/__init__.py'
  adding 'ironic/tests/unit/console/container/__init__.py'
  adding 'ironic/tests/unit/console/container/test_console_container.py'
  adding 'ironic/tests/unit/console/rfb/__init__.py'
  adding 'ironic/tests/unit/console/rfb/test_auth.py'
  adding 'ironic/tests/unit/console/rfb/test_authnone.py'
  adding 'ironic/tests/unit/console/securityproxy/__init__.py'
  adding 'ironic/tests/unit/console/securityproxy/test_rfb.py'
  adding 'ironic/tests/unit/console/securityproxy/test_websocketproxy.py'
  adding 'ironic/tests/unit/db/__init__.py'
  adding 'ironic/tests/unit/db/base.py'
  adding 'ironic/tests/unit/db/test_allocations.py'
  adding 'ironic/tests/unit/db/test_api.py'
  adding 'ironic/tests/unit/db/test_bios_settings.py'
  adding 'ironic/tests/unit/db/test_chassis.py'
  adding 'ironic/tests/unit/db/test_conductor.py'
  adding 'ironic/tests/unit/db/test_deploy_templates.py'
  adding 'ironic/tests/unit/db/test_firmware_component.py'
  adding 'ironic/tests/unit/db/test_node_history.py'
  adding 'ironic/tests/unit/db/test_node_inventory.py'
  adding 'ironic/tests/unit/db/test_node_tags.py'
  adding 'ironic/tests/unit/db/test_node_traits.py'
  adding 'ironic/tests/unit/db/test_nodes.py'
  adding 'ironic/tests/unit/db/test_portgroups.py'
  adding 'ironic/tests/unit/db/test_ports.py'
  adding 'ironic/tests/unit/db/test_runbooks.py'
  adding 'ironic/tests/unit/db/test_shard.py'
  adding 'ironic/tests/unit/db/test_volume_connectors.py'
  adding 'ironic/tests/unit/db/test_volume_targets.py'
  adding 'ironic/tests/unit/db/utils.py'
  adding 'ironic/tests/unit/db/sqlalchemy/__init__.py'
  adding 'ironic/tests/unit/db/sqlalchemy/test_api.py'
  adding 'ironic/tests/unit/db/sqlalchemy/test_migrations.py'
  adding 'ironic/tests/unit/db/sqlalchemy/test_models.py'
  adding 'ironic/tests/unit/db/sqlalchemy/test_types.py'
  adding 'ironic/tests/unit/dhcp/__init__.py'
  adding 'ironic/tests/unit/dhcp/test_dnsmasq.py'
  adding 'ironic/tests/unit/dhcp/test_factory.py'
  adding 'ironic/tests/unit/dhcp/test_neutron.py'
  adding 'ironic/tests/unit/drivers/__init__.py'
  adding 'ironic/tests/unit/drivers/boot-fallback.ipxe'
  adding 'ironic/tests/unit/drivers/boot.ipxe'
  adding 'ironic/tests/unit/drivers/ipxe_config.template'
  adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template'
  adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template'
  adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template'
  adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template'
  adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template'
  adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template'
  adding 'ironic/tests/unit/drivers/ipxe_config_timeout.template'
  adding 'ironic/tests/unit/drivers/ks_extra_vars.tmpl'
  adding 'ironic/tests/unit/drivers/ks_missing_var.tmpl'
  adding 'ironic/tests/unit/drivers/pxe_config.template'
  adding 'ironic/tests/unit/drivers/pxe_grub_config.template'
  adding 'ironic/tests/unit/drivers/test_base.py'
  adding 'ironic/tests/unit/drivers/test_drac.py'
  adding 'ironic/tests/unit/drivers/test_fake_hardware.py'
  adding 'ironic/tests/unit/drivers/test_generic.py'
  adding 'ironic/tests/unit/drivers/test_ilo.py'
  adding 'ironic/tests/unit/drivers/test_ipmi.py'
  adding 'ironic/tests/unit/drivers/test_irmc.py'
  adding 'ironic/tests/unit/drivers/test_redfish.py'
  adding 'ironic/tests/unit/drivers/test_snmp.py'
  adding 'ironic/tests/unit/drivers/test_utils.py'
  adding 'ironic/tests/unit/drivers/third_party_driver_mock_specs.py'
  adding 'ironic/tests/unit/drivers/third_party_driver_mocks.py'
  adding 'ironic/tests/unit/drivers/modules/__init__.py'
  adding 'ironic/tests/unit/drivers/modules/test_agent.py'
  adding 'ironic/tests/unit/drivers/modules/test_agent_base.py'
  adding 'ironic/tests/unit/drivers/modules/test_agent_client.py'
  adding 'ironic/tests/unit/drivers/modules/test_agent_power.py'
  adding 'ironic/tests/unit/drivers/modules/test_boot_mode_utils.py'
  adding 'ironic/tests/unit/drivers/modules/test_console_utils.py'
  adding 'ironic/tests/unit/drivers/modules/test_deploy_utils.py'
  adding 'ironic/tests/unit/drivers/modules/test_graphical_console.py'
  adding 'ironic/tests/unit/drivers/modules/test_image_cache.py'
  adding 'ironic/tests/unit/drivers/modules/test_image_utils.py'
  adding 'ironic/tests/unit/drivers/modules/test_inspect_utils.py'
  adding 'ironic/tests/unit/drivers/modules/test_ipmitool.py'
  adding 'ironic/tests/unit/drivers/modules/test_ipxe.py'
  adding 'ironic/tests/unit/drivers/modules/test_noop.py'
  adding 'ironic/tests/unit/drivers/modules/test_noop_mgmt.py'
  adding 'ironic/tests/unit/drivers/modules/test_pxe.py'
  adding 'ironic/tests/unit/drivers/modules/test_ramdisk.py'
  adding 'ironic/tests/unit/drivers/modules/test_snmp.py'
  adding 'ironic/tests/unit/drivers/modules/ansible/__init__.py'
  adding 'ironic/tests/unit/drivers/modules/ansible/test_deploy.py'
  adding 'ironic/tests/unit/drivers/modules/drac/__init__.py'
  adding 'ironic/tests/unit/drivers/modules/drac/test_boot.py'
  adding 'ironic/tests/unit/drivers/modules/drac/test_inspect.py'
  adding 'ironic/tests/unit/drivers/modules/drac/test_management.py'
  adding 'ironic/tests/unit/drivers/modules/drac/test_raid.py'
  adding 'ironic/tests/unit/drivers/modules/drac/test_utils.py'
  adding 'ironic/tests/unit/drivers/modules/drac/utils.py'
  adding 'ironic/tests/unit/drivers/modules/ibmc/__init__.py'
  adding 'ironic/tests/unit/drivers/modules/ilo/__init__.py'
  adding 'ironic/tests/unit/drivers/modules/ilo/test_bios.py'
  adding 'ironic/tests/unit/drivers/modules/ilo/test_boot.py'
  adding 'ironic/tests/unit/drivers/modules/ilo/test_common.py'
  adding 'ironic/tests/unit/drivers/modules/ilo/test_console.py'
  adding 'ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py'
  adding 'ironic/tests/unit/drivers/modules/ilo/test_inspect.py'
  adding 'ironic/tests/unit/drivers/modules/ilo/test_management.py'
  adding 'ironic/tests/unit/drivers/modules/ilo/test_power.py'
  adding 'ironic/tests/unit/drivers/modules/ilo/test_raid.py'
  adding 'ironic/tests/unit/drivers/modules/ilo/test_vendor.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/__init__.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/test_agent.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/test_client.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/test_interface.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/__init__.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_accelerators.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_architecture.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_boot_mode.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_cpu_capabilities.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_extra_hardware.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_local_link_connection.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_memory.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_parse_lldp.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_pci_devices.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_physical_network.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_ports.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_raid_device.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_ramdisk_error.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_root_device.py'
  adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_validate_interfaces.py'
  adding 'ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py'
  adding 'ironic/tests/unit/drivers/modules/intel_ipmi/base.py'
  adding 'ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py'
  adding 'ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py'
  adding 'ironic/tests/unit/drivers/modules/irmc/__init__.py'
  adding 'ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml'
  adding 'ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml'
  adding 'ironic/tests/unit/drivers/modules/irmc/test_bios.py'
  adding 'ironic/tests/unit/drivers/modules/irmc/test_boot.py'
  adding 'ironic/tests/unit/drivers/modules/irmc/test_common.py'
  adding 'ironic/tests/unit/drivers/modules/irmc/test_inspect.py'
  adding 'ironic/tests/unit/drivers/modules/irmc/test_management.py'
  adding 'ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py'
  adding 'ironic/tests/unit/drivers/modules/irmc/test_power.py'
  adding 'ironic/tests/unit/drivers/modules/irmc/test_raid.py'
  adding 'ironic/tests/unit/drivers/modules/network/__init__.py'
  adding 'ironic/tests/unit/drivers/modules/network/test_common.py'
  adding 'ironic/tests/unit/drivers/modules/network/test_flat.py'
  adding 'ironic/tests/unit/drivers/modules/network/test_neutron.py'
  adding 'ironic/tests/unit/drivers/modules/network/test_noop.py'
  adding 'ironic/tests/unit/drivers/modules/network/json_samples/network_data.json'
  adding 'ironic/tests/unit/drivers/modules/redfish/__init__.py'
  adding 'ironic/tests/unit/drivers/modules/redfish/test_bios.py'
  adding 'ironic/tests/unit/drivers/modules/redfish/test_boot.py'
  adding 'ironic/tests/unit/drivers/modules/redfish/test_firmware.py'
  adding 'ironic/tests/unit/drivers/modules/redfish/test_firmware_utils.py'
  adding 'ironic/tests/unit/drivers/modules/redfish/test_inspect.py'
  adding 'ironic/tests/unit/drivers/modules/redfish/test_management.py'
  adding 'ironic/tests/unit/drivers/modules/redfish/test_power.py'
  adding 'ironic/tests/unit/drivers/modules/redfish/test_raid.py'
  adding 'ironic/tests/unit/drivers/modules/redfish/test_utils.py'
  adding 'ironic/tests/unit/drivers/modules/redfish/test_vendor.py'
  adding 'ironic/tests/unit/drivers/modules/storage/__init__.py'
  adding 'ironic/tests/unit/drivers/modules/storage/test_cinder.py'
  adding 'ironic/tests/unit/drivers/modules/storage/test_external.py'
  adding 'ironic/tests/unit/drivers/modules/xclarity/__init__.py'
  adding 'ironic/tests/unit/objects/__init__.py'
  adding 'ironic/tests/unit/objects/test_allocation.py'
  adding 'ironic/tests/unit/objects/test_bios.py'
  adding 'ironic/tests/unit/objects/test_chassis.py'
  adding 'ironic/tests/unit/objects/test_conductor.py'
  adding 'ironic/tests/unit/objects/test_deploy_template.py'
  adding 'ironic/tests/unit/objects/test_deployment.py'
  adding 'ironic/tests/unit/objects/test_fields.py'
  adding 'ironic/tests/unit/objects/test_firmware.py'
  adding 'ironic/tests/unit/objects/test_node.py'
  adding 'ironic/tests/unit/objects/test_node_history.py'
  adding 'ironic/tests/unit/objects/test_node_inventory.py'
  adding 'ironic/tests/unit/objects/test_notification.py'
  adding 'ironic/tests/unit/objects/test_objects.py'
  adding 'ironic/tests/unit/objects/test_port.py'
  adding 'ironic/tests/unit/objects/test_portgroup.py'
  adding 'ironic/tests/unit/objects/test_trait.py'
  adding 'ironic/tests/unit/objects/test_volume_connector.py'
  adding 'ironic/tests/unit/objects/test_volume_target.py'
  adding 'ironic/tests/unit/objects/utils.py'
  adding 'ironic/tests/unit/pxe_filter/__init__.py'
  adding 'ironic/tests/unit/pxe_filter/test_dnsmasq.py'
  adding 'ironic/tests/unit/pxe_filter/test_service.py'
  adding 'ironic/wsgi/__init__.py'
  adding 'ironic-29.1.0.dev138.data/data/etc/ironic/rootwrap.conf'
  adding 'ironic-29.1.0.dev138.data/data/etc/ironic/rootwrap.d/ironic-utils.filters'
  adding 'ironic-29.1.0.dev138.data/data/share/ironic/vnc-container/Containerfile'
  adding 'ironic-29.1.0.dev138.data/data/share/ironic/vnc-container/README.rst'
  adding 'ironic-29.1.0.dev138.data/data/share/ironic/vnc-container/bin/start-browser-x11vnc.sh'
  adding 'ironic-29.1.0.dev138.data/data/share/ironic/vnc-container/bin/start-selenium-browser.py'
  adding 'ironic-29.1.0.dev138.data/data/share/ironic/vnc-container/bin/start-xvfb.sh'
  adding 'ironic-29.1.0.dev138.data/data/share/ironic/vnc-container/drivers/fake/index.html'
  adding 'ironic-29.1.0.dev138.data/data/share/ironic/vnc-container/drivers/fake/ironic_mascot_color.png'
  adding 'ironic-29.1.0.dev138.data/scripts/ironic-api-wsgi'
  adding 'ironic-29.1.0.dev138.dist-info/AUTHORS'
  adding 'ironic-29.1.0.dev138.dist-info/LICENSE'
  adding 'ironic-29.1.0.dev138.dist-info/METADATA'
  adding 'ironic-29.1.0.dev138.dist-info/WHEEL'
  adding 'ironic-29.1.0.dev138.dist-info/entry_points.txt'
  adding 'ironic-29.1.0.dev138.dist-info/pbr.json'
  adding 'ironic-29.1.0.dev138.dist-info/top_level.txt'
  adding 'ironic-29.1.0.dev138.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.dev138-py3-none-any.whl size=2262833 sha256=868f6729a2d9a3f0fb7cd45d614af8d8f5b30db914adc5df03f76af02e400427
  Stored in directory: /builddir/.cache/pip/wheels/b9/05/b6/4f6a8af6463819d8810bddd0e806c78cb11f4a1f83925b2413
Successfully built ironic
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.hybu6g
+ umask 022
+ cd /builddir/build/BUILD
+ '[' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64 '!=' / ']'
+ rm -rf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64
++ dirname /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64
+ mkdir -p /builddir/build/BUILDROOT
+ mkdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64
+ cd ironic-29.1.0.dev138
++ ls /builddir/build/BUILD/ironic-29.1.0.dev138/pyproject-wheeldir/ironic-29.1.0.dev138-py3-none-any.whl
++ xargs basename --multiple
++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/'
+ specifier=ironic==29.1.0.dev138
+ '[' -z ironic==29.1.0.dev138 ']'
+ TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev138/.pyproject-builddir
+ /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.dev138/pyproject-wheeldir ironic==29.1.0.dev138
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.dev138/pyproject-wheeldir
Processing ./pyproject-wheeldir/ironic-29.1.0.dev138-py3-none-any.whl
Installing collected packages: ironic
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-api to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-conductor to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-dbsync to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-novncproxy to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-pxe-filter to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-rootwrap to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-status to 755
Successfully installed ironic-29.1.0.dev138
+ '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-api /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-api-wsgi /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-conductor /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-dbsync /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-novncproxy /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-pxe-filter /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-rootwrap /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-status
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-api: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-api-wsgi: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-conductor: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-dbsync: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-novncproxy: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-pxe-filter: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-rootwrap: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/ironic-status: updating
+ rm -rfv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/bin/__pycache__
+ rm -f /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64-pyproject-ghost-distinfo
+ site_dirs=()
+ '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.x86_64/usr/lib64/python3.9/site-packages '!=' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/lib/python3.9/site-packages ']'
+ '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.x86_64$site_dir/*.dist-info
+ echo '%ghost /usr/lib/python3.9/site-packages/ironic-29.1.0.dev138.dist-info'
+ sed -i s/pip/rpm/ /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev138.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.20250529165237.4cc3fd3.el9.x86_64 --record /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev138.dist-info/RECORD --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64-pyproject-record
+ rm -fv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev138.dist-info/RECORD
removed '/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev138.dist-info/RECORD'
+ rm -fv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev138.dist-info/REQUESTED
removed '/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev138.dist-info/REQUESTED'
++ wc -l /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.x86_64/etc/logrotate.d/openstack-ironic
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.x86_64/usr/lib/systemd/system
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.x86_64/etc/sudoers.d/ironic
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/var/lib/ironic/
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/var/log/ironic/
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/etc/ironic/rootwrap.d
+ export PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64//usr/lib/python3.9/site-packages
+ PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.x86_64/usr/etc/ironic/rootwrap.conf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64//etc/ironic/rootwrap.conf
+ mv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/etc/ironic/rootwrap.d/ironic-utils.filters /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64//etc/ironic/rootwrap.d/
+ rmdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/etc/ironic/rootwrap.d
+ rmdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9 --unique-debug-suffix -29.1.0-0.20250529165237.4cc3fd3.el9.x86_64 --unique-debug-src-base openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.dev138
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.20250529165237.4cc3fd3.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.D3aQxe
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev138
+ 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.20250529165237.4cc3fd3.el9.x86_64/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin
+ PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/lib64/python3.9/site-packages:/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/lib/python3.9/site-packages
+ PYTHONDONTWRITEBYTECODE=1
+ PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/ironic-29.1.0.dev138/.pyproject-builddir'
+ PYTEST_XDIST_AUTO_NUM_WORKERS=4
+ HOSTNAME=rpmbuild
+ /usr/bin/python3 -m tox --current-env -q --recreate -e py39
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
2025-05-29 12:55:19.237 2709606 INFO oslo_service.backend [-] Loading backend: eventlet
2025-05-29 12:55:19.301 2709606 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached.
2025-05-29 12:55:19.498 2709609 INFO oslo_service.backend [-] Loading backend: eventlet
2025-05-29 12:55:19.556 2709619 INFO oslo_service.backend [-] Loading backend: eventlet
2025-05-29 12:55:19.559 2709609 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached.
2025-05-29 12:55:19.591 2709619 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached.
2025-05-29 12:55:19.711 2709633 INFO oslo_service.backend [-] Loading backend: eventlet
2025-05-29 12:55:19.760 2709633 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached.
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links [0.465792s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-43fb5d02-3e51-44b9-883a-4b04f03259b0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "ac0feb08-616a-4315-9fe6-3804219c4a84", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/ac0feb08-616a-4315-9fe6-3804219c4a84", "rel": "self"}, {"href": "http://localhost/chassis/ac0feb08-616a-4315-9fe6-3804219c4a84", "rel": "bookmark"}]}, {"uuid": "ceeeb665-f7bc-430f-8e3a-94dcbe3eb07d", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/ceeeb665-f7bc-430f-8e3a-94dcbe3eb07d", "rel": "self"}, {"href": "http://localhost/chassis/ceeeb665-f7bc-430f-8e3a-94dcbe3eb07d", "rel": "bookmark"}]}, {"uuid": "02ac3c14-223e-434a-b30b-ad304e8a28b7", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/02ac3c14-223e-434a-b30b-ad304e8a28b7", "rel": "self"}, {"href": "http://localhost/chassis/02ac3c14-223e-434a-b30b-ad304e8a28b7", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=02ac3c14-223e-434a-b30b-ad304e8a28b7"}
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_api_setup [0.374498s] ... 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
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_custom_fields [0.056014s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?fields=extra,uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-85586f9f-cde8-4037-b78c-20c2578f1591
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "0d30fc4f-438c-4672-865e-972871cac2c2", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/0d30fc4f-438c-4672-865e-972871cac2c2", "rel": "self"}, {"href": "http://localhost/chassis/0d30fc4f-438c-4672-865e-972871cac2c2", "rel": "bookmark"}]}, {"uuid": "59e9b27b-fd7c-429f-ae39-91f95777ceae", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/59e9b27b-fd7c-429f-ae39-91f95777ceae", "rel": "self"}, {"href": "http://localhost/chassis/59e9b27b-fd7c-429f-ae39-91f95777ceae", "rel": "bookmark"}]}, {"uuid": "24378127-da31-4b1f-81fa-5f6846492194", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/24378127-da31-4b1f-81fa-5f6846492194", "rel": "self"}, {"href": "http://localhost/chassis/24378127-da31-4b1f-81fa-5f6846492194", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=24378127-da31-4b1f-81fa-5f6846492194"}
{2} ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri [0.050227s] ... 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\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit [0.343854s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f7fc6d56-b585-40f4-bc27-6fd4683d85f0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "c9aabc60-8191-45bc-be0d-6297b46dddaa", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/c9aabc60-8191-45bc-be0d-6297b46dddaa", "rel": "self"}, {"href": "http://localhost/chassis/c9aabc60-8191-45bc-be0d-6297b46dddaa", "rel": "bookmark"}]}, {"uuid": "16e4237e-0ae9-47e4-8d23-fd07c3a4f85b", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/16e4237e-0ae9-47e4-8d23-fd07c3a4f85b", "rel": "self"}, {"href": "http://localhost/chassis/16e4237e-0ae9-47e4-8d23-fd07c3a4f85b", "rel": "bookmark"}]}, {"uuid": "8a833be2-98a1-49b2-8977-7cf3d5b1e62e", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/8a833be2-98a1-49b2-8977-7cf3d5b1e62e", "rel": "self"}, {"href": "http://localhost/chassis/8a833be2-98a1-49b2-8977-7cf3d5b1e62e", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=8a833be2-98a1-49b2-8977-7cf3d5b1e62e"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail [0.056830s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ac03063a-fa71-43e7-8844-81292a84c35e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:41.449195+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single [0.040756s] ... 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-873241bc-f6fa-4e3f-b12d-0e7d05cefe29
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query [0.047918s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9aa9362c-5318-4cf5-983f-acbcf00e12b9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:41.540686+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false [0.048598s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-03703759-ae6e-4535-acea-229d86b6531f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
GET /v1/chassis?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c3ad036e-7007-45d4-aa9f-af89c754da9b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields [0.044192s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?detail=True&fields=description WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-e589d389-b3fa-40fa-82b0-0697c35cdb85
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields [0.036123s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?detail=False&fields=description WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-97ea8f72-7ac1-48bc-b5e2-06cfe1783523
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version [0.056519s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?detail=True WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c9e39c2c-87aa-4add-8512-1ceed01735d9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty [0.051542s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a2b19843-6959-497c-a46b-f8e575342060
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": []}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields [0.066105s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bdc8ab33-99e8-4eb4-ae73-5e77feab5cef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "71826ce1-1930-4393-a934-70d0a0b7e649", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/71826ce1-1930-4393-a934-70d0a0b7e649", "rel": "self"}, {"href": "http://localhost/chassis/71826ce1-1930-4393-a934-70d0a0b7e649", "rel": "bookmark"}]}, {"uuid": "dd7bef38-7413-45c3-ab23-6e7698a912c4", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/dd7bef38-7413-45c3-ab23-6e7698a912c4", "rel": "self"}, {"href": "http://localhost/chassis/dd7bef38-7413-45c3-ab23-6e7698a912c4", "rel": "bookmark"}]}, {"uuid": "75173223-17b9-4292-8168-ac5a955ba71a", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/75173223-17b9-4292-8168-ac5a955ba71a", "rel": "self"}, {"href": "http://localhost/chassis/75173223-17b9-4292-8168-ac5a955ba71a", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals [0.389392s] ... 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.v1.test_allocation.TestDelete.test_delete_allocation_by_id [0.899616s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/22902738-4d37-4121-9590-d9cbe7051931 GOT Response: 204 No Content
Openstack-Request-Id: req-355228ce-fb42-43df-9eac-470341cbf39e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan [0.077344s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid [0.129017s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?fields=extra&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-522036c4-f1e7-438b-98c2-bf5a1b3a0e1b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"extra": {}, "links": [{"href": "http://localhost/v1/chassis/8e5441e6-2606-47ce-9fe1-867be5b3f76b", "rel": "self"}, {"href": "http://localhost/chassis/8e5441e6-2606-47ce-9fe1-867be5b3f76b", "rel": "bookmark"}]}, {"extra": {}, "links": [{"href": "http://localhost/v1/chassis/40d537bc-727a-4ca3-9db6-543c28702efe", "rel": "self"}, {"href": "http://localhost/chassis/40d537bc-727a-4ca3-9db6-543c28702efe", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=40d537bc-727a-4ca3-9db6-543c28702efe"}
{1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_init [0.038299s] ... ok
{1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan [0.037172s] ... ok
{1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals [0.053651s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version [0.136789s] ... 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-7f675ca5-7b90-420b-8296-11fa0980d552
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name [0.138646s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/alloc1 GOT Response: 204 No Content
Openstack-Request-Id: req-ec686c0d-5110-4b33-ac8c-5cad47446420
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length [0.041304s] ... ok
{1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest [0.034513s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields [0.070872s] ... 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-ebaf88f8-f61b-49bc-9f14-4c0e37c662cf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed [0.070403s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/blah GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b6b53add-1a06-454e-afc2-6464667f7df1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation blah could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json [0.068066s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/alloc1.json GOT Response: 204 No Content
Openstack-Request-Id: req-b51b2e37-a41e-4d18-bc05-bbd66a9de1db
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name [0.435127s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/CUSTOM_DT1 GOT Response: 204 No Content
Openstack-Request-Id: req-f41cfd03-ad06-4af7-b0a4-de705a9fe0ff
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
Captured stderr:
~~~~~~~~~~~~~~~~
    INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running stamp_revision  -> 1c14278d6e33
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one [0.105092s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-efc333e3-85d0-42dd-8d38-132dd107665e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:42.295231+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields [0.048674s] ... 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-ff1de6ed-f1ae-4d3e-b736-21982e7c6539
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json_not_found [0.135798s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/alloc1.json GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-03a701d6-c840-4cae-8784-c183bfd28ca5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation alloc1.json could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links [0.116984s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-50abe379-2b2c-4b79-94b9-79ae4b6dba17
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "7ad077f4-5dfb-4272-b5dc-51addcfc7d7b", "created_at": "2025-05-29T16:55:42.438957+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b", "rel": "self"}, {"href": "http://localhost/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-793196f6-ffd4-4bfa-84a5-7d1d407798e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "7ad077f4-5dfb-4272-b5dc-51addcfc7d7b", "created_at": "2025-05-29T16:55:42.438957+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b", "rel": "self"}, {"href": "http://localhost/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b/nodes", "rel": "bookmark"}]]}
GET /chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6406c2c1-bf79-4872-955f-d47ee2165dd3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "7ad077f4-5dfb-4272-b5dc-51addcfc7d7b", "created_at": "2025-05-29T16:55:42.438957+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b", "rel": "self"}, {"href": "http://localhost/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7ad077f4-5dfb-4272-b5dc-51addcfc7d7b/nodes", "rel": "bookmark"}]]}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url [0.051838s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-20b7b68f-0468-4735-9b03-80063ddf1cef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "5d6a8fec-606e-4f29-b37c-4d083e2835bc", "created_at": "2025-05-29T16:55:42.506058+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc", "rel": "self"}, {"href": "http://foo/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc/nodes", "rel": "self"}, {"href": "http://foo/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ae8459a1-c049-475a-a71c-d877bf09f654
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "5d6a8fec-606e-4f29-b37c-4d083e2835bc", "created_at": "2025-05-29T16:55:42.506058+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc", "rel": "self"}, {"href": "http://foo/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc/nodes", "rel": "self"}, {"href": "http://foo/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc/nodes", "rel": "bookmark"}]]}
GET /chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e3f2dcce-7487-4c41-a6f0-8dc040a565e3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "5d6a8fec-606e-4f29-b37c-4d083e2835bc", "created_at": "2025-05-29T16:55:42.506058+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc", "rel": "self"}, {"href": "http://foo/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc/nodes", "rel": "self"}, {"href": "http://foo/chassis/5d6a8fec-606e-4f29-b37c-4d083e2835bc/nodes", "rel": "bookmark"}]]}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many [0.032560s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4273d308-a622-4fe2-93fb-546bc199fca4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "1b166348-6c3f-4890-a6b6-8b49a78b8339", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/1b166348-6c3f-4890-a6b6-8b49a78b8339", "rel": "self"}, {"href": "http://localhost/chassis/1b166348-6c3f-4890-a6b6-8b49a78b8339", "rel": "bookmark"}]}, {"uuid": "844b69a1-7315-43ff-992f-5a129b5c8ba6", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/844b69a1-7315-43ff-992f-5a129b5c8ba6", "rel": "self"}, {"href": "http://localhost/chassis/844b69a1-7315-43ff-992f-5a129b5c8ba6", "rel": "bookmark"}]}, {"uuid": "c2eb1fb1-008d-43d1-aca5-f89320fa4580", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/c2eb1fb1-008d-43d1-aca5-f89320fa4580", "rel": "self"}, {"href": "http://localhost/chassis/c2eb1fb1-008d-43d1-aca5-f89320fa4580", "rel": "bookmark"}]}, {"uuid": "a8c921a2-5318-4d82-acb8-50991b38066f", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/a8c921a2-5318-4d82-acb8-50991b38066f", "rel": "self"}, {"href": "http://localhost/chassis/a8c921a2-5318-4d82-acb8-50991b38066f", "rel": "bookmark"}]}, {"uuid": "cc24bedf-f54d-4e6b-afde-aafacdfa8fb2", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/cc24bedf-f54d-4e6b-afde-aafacdfa8fb2", "rel": "self"}, {"href": "http://localhost/chassis/cc24bedf-f54d-4e6b-afde-aafacdfa8fb2", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok [0.395955s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node [0.182110s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT Response: 204 No Content
Openstack-Request-Id: req-57032c3f-7cfc-4839-96d5-cc03ad599bac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_new_standard_singular_header_ok [0.040336s] ... ok
{1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header [0.025349s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource [0.098588s] ... 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-b3d346fa-7887-4146-ab5a-6b9780fcffaf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "ce60e866-5a35-4710-be46-4658c650c317", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ce60e866-5a35-4710-be46-4658c650c317", "rel": "self"}, {"href": "http://localhost/nodes/ce60e866-5a35-4710-be46-4658c650c317", "rel": "bookmark"}]}, {"uuid": "5d6a1e35-44c4-4dc3-a29c-d230f45d9309", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5d6a1e35-44c4-4dc3-a29c-d230f45d9309", "rel": "self"}, {"href": "http://localhost/nodes/5d6a1e35-44c4-4dc3-a29c-d230f45d9309", "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-adce0917-500d-42f3-abc3-8cc6ddb9ddce
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "ce60e866-5a35-4710-be46-4658c650c317", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ce60e866-5a35-4710-be46-4658c650c317", "rel": "self"}, {"href": "http://localhost/nodes/ce60e866-5a35-4710-be46-4658c650c317", "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=ce60e866-5a35-4710-be46-4658c650c317"}
{1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr [0.023541s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found [0.034329s] ... 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-8d44c2a6-d100-4af0-a82a-b02bb2da51af
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version [0.114293s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings [0.049227s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent [0.472779s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/blah GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-90be006c-52c0-41be-8cd4-14e31b1dcf06
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template blah could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link [0.085672s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-efb9e2d3-969e-46e2-89f2-0669a294a2f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:42.768973+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json [0.041616s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 204 No Content
Openstack-Request-Id: req-66896f1a-0ffc-4a6b-b5f5-ba50587269b0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid [0.046294s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/nodes WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f485c8a2-0fb7-4358-a2a0-53dacc7c1bdd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis id not specified.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json_not_found [0.056486s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-fc476aa1-72fe-4f2c-8773-658cad134da4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template CUSTOM_DT1.json could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one [0.062274s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9298776e-5d3b-4686-8431-4d31c5271841
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed [0.186968s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/d58fc348-0c28-49d7-8712-b05c71d12c3f/allocation GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e9840ad8-430f-4166-8242-09e8ecabaa56
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation for node d58fc348-0c28-49d7-8712-b05c71d12c3f was not found\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add [0.174242s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/a283b41f-db71-4b7c-bd8e-5f7a7d2da70a WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3b4dd6f4-e313-4a21-8460-7c663c8829cd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "a283b41f-db71-4b7c-bd8e-5f7a7d2da70a", "created_at": "2025-05-29T16:55:42.839385+00:00", "updated_at": "2025-05-29T16:55:42.901162+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/a283b41f-db71-4b7c-bd8e-5f7a7d2da70a", "rel": "self"}, {"href": "http://localhost/allocations/a283b41f-db71-4b7c-bd8e-5f7a7d2da70a", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key [0.049926s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7ef372e3-c814-4d5d-9c2f-bb672d3fc88e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "2b9c6eb3-3ed4-4097-bb0a-6b1cea0781b8", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/2b9c6eb3-3ed4-4097-bb0a-6b1cea0781b8", "rel": "self"}, {"href": "http://localhost/chassis/2b9c6eb3-3ed4-4097-bb0a-6b1cea0781b8", "rel": "bookmark"}]}, {"uuid": "313eed47-ae8c-469b-a79a-2f2e2c689af8", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/313eed47-ae8c-469b-a79a-2f2e2c689af8", "rel": "self"}, {"href": "http://localhost/chassis/313eed47-ae8c-469b-a79a-2f2e2c689af8", "rel": "bookmark"}]}, {"uuid": "d1400f64-1963-4579-aaef-12c4b9f29b05", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/d1400f64-1963-4579-aaef-12c4b9f29b05", "rel": "self"}, {"href": "http://localhost/chassis/d1400f64-1963-4579-aaef-12c4b9f29b05", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid [0.105260s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/3ea965e6-146f-4e90-9220-56f73a9bc6fe GOT Response: 204 No Content
Openstack-Request-Id: req-1a5645c0-b30f-44b4-a1fb-06b1aceee91c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid [0.045807s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-2f5d13bf-5e88-439a-a500-18d1e03b57de
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/chassis?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b64a3efd-eb80-48c8-9d00-cfe3dd623a7c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi [0.082695s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/70edfcc6-c1f0-4009-8bfb-5be487e3ff1b 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-b1d4b1e0-2ed7-4113-a68b-fe41f3c456bd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "70edfcc6-c1f0-4009-8bfb-5be487e3ff1b", "created_at": "2025-05-29T16:55:42.963589+00:00", "updated_at": "2025-05-29T16:55:42.980242+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/70edfcc6-c1f0-4009-8bfb-5be487e3ff1b", "rel": "self"}, {"href": "http://localhost/allocations/70edfcc6-c1f0-4009-8bfb-5be487e3ff1b", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/70edfcc6-c1f0-4009-8bfb-5be487e3ff1b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2d63c8d5-b134-4be4-a874-f637202a0d6a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "70edfcc6-c1f0-4009-8bfb-5be487e3ff1b", "created_at": "2025-05-29T16:55:42.963589+00:00", "updated_at": "2025-05-29T16:55:42.980242+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/70edfcc6-c1f0-4009-8bfb-5be487e3ff1b", "rel": "self"}, {"href": "http://localhost/allocations/70edfcc6-c1f0-4009-8bfb-5be487e3ff1b", "rel": "bookmark"}], "node_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version [0.138703s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/48dc388d-6688-4c8d-bd64-76a71d476214 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_deploy_template.TestDelete.test_delete_by_uuid_with_json [0.079308s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/6d2c6548-d332-47e9-bfd7-eb85f057d296.json GOT Response: 204 No Content
Openstack-Request-Id: req-8624c1cf-344c-4898-ac16-371003502b68
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent [0.070483s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/492f1d9d-a82b-4d0f-9441-7e17cad28f2b WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f72a4074-31bb-4922-8ae4-55bee2edf09f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: name, extra\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis [0.106224s] ... 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-525ea68a-ec68-445f-8267-5fb9285d3356
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7aff5aff-bea2-4151-9405-de46a108d822
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check [0.073923s] ... 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\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id [0.040755s] ... 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-96421a41-7245-4344-83df-911f41adff83
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:43.137106+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-958d89ca-652c-4dc2-8775-80812fe8475c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:43.137106+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"}]]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json_not_found [0.092797s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/75602c50-705c-4149-bc71-c8e1b72810c9.json GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-7cbe4c97-8b90-4ac3-9bae-fd70d79f8210
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 75602c50-705c-4149-bc71-c8e1b72810c9.json could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version [0.037491s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/67addbff-91a7-43e1-9f76-45cd0bed4d3f 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_allocation.TestPatch.test_remove_multi [0.125404s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/89593122-ad43-44ae-8ef3-28832380e4ab WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-db70e13e-6dfa-4348-89e2-d9c573361ddd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "89593122-ad43-44ae-8ef3-28832380e4ab", "created_at": "2025-05-29T16:55:43.113687+00:00", "updated_at": "2025-05-29T16:55:43.138172+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/89593122-ad43-44ae-8ef3-28832380e4ab", "rel": "self"}, {"href": "http://localhost/allocations/89593122-ad43-44ae-8ef3-28832380e4ab", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/89593122-ad43-44ae-8ef3-28832380e4ab WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5428f4f0-c326-4eda-82cf-9053498985e7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "89593122-ad43-44ae-8ef3-28832380e4ab", "created_at": "2025-05-29T16:55:43.113687+00:00", "updated_at": "2025-05-29T16:55:43.138172+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/89593122-ad43-44ae-8ef3-28832380e4ab", "rel": "self"}, {"href": "http://localhost/allocations/89593122-ad43-44ae-8ef3-28832380e4ab", "rel": "bookmark"}], "node_uuid": null}
PATCH /v1/allocations/89593122-ad43-44ae-8ef3-28832380e4ab WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7fa4aca5-c8a0-402c-884f-bc590eed668f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "89593122-ad43-44ae-8ef3-28832380e4ab", "created_at": "2025-05-29T16:55:43.113687+00:00", "updated_at": "2025-05-29T16:55:43.189209+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/89593122-ad43-44ae-8ef3-28832380e4ab", "rel": "self"}, {"href": "http://localhost/allocations/89593122-ad43-44ae-8ef3-28832380e4ab", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/89593122-ad43-44ae-8ef3-28832380e4ab WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2fa87456-a6cd-4387-8b7a-ec48daeb8543
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "89593122-ad43-44ae-8ef3-28832380e4ab", "created_at": "2025-05-29T16:55:43.113687+00:00", "updated_at": "2025-05-29T16:55:43.189209+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/89593122-ad43-44ae-8ef3-28832380e4ab", "rel": "self"}, {"href": "http://localhost/allocations/89593122-ad43-44ae-8ef3-28832380e4ab", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error [0.056948s] ... 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-808ea218-3394-4da4-bc6a-d3fea237133d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node [0.081390s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/b91333db-7d7c-48b9-a14b-8ddb2e31cb3a/allocation GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-29d25250-342d-47b3-94f0-b95fe0a5591c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node b91333db-7d7c-48b9-a14b-8ddb2e31cb3a could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version [0.044483s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/CUSTOM_DT1 GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail [0.050719s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/5abd2d75-b27f-426e-9a0c-e3ff61a19af9 WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-4bce588b-b552-42b7-9be0-286797ef2b45
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid [0.063777s] ... 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/97224203-1c4d-4d42-9cf7-434f84461c82
Openstack-Request-Id: req-9ab98e97-02e6-4fb3-ac0e-11cc48dae145
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "97224203-1c4d-4d42-9cf7-434f84461c82", "created_at": "2025-05-29T16:55:43.254074+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/97224203-1c4d-4d42-9cf7-434f84461c82", "rel": "self"}, {"href": "http://localhost/chassis/97224203-1c4d-4d42-9cf7-434f84461c82", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/97224203-1c4d-4d42-9cf7-434f84461c82/nodes", "rel": "self"}, {"href": "http://localhost/chassis/97224203-1c4d-4d42-9cf7-434f84461c82/nodes", "rel": "bookmark"}]]}
GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3cb21f29-2b52-4a10-88b5-6c42e4c9cd08
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "97224203-1c4d-4d42-9cf7-434f84461c82", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/97224203-1c4d-4d42-9cf7-434f84461c82", "rel": "self"}, {"href": "http://localhost/chassis/97224203-1c4d-4d42-9cf7-434f84461c82", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked [0.127801s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/e09f6b01-32dc-4d07-b363-51e7f4cfc18c GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-39fee6c2-fba5-45c5-ba19-cb2a7fc53520
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description [0.068894s] ... 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-7e93f761-207f-4746-922d-e233e57a83c1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 1334 is not of type 'string', 'null'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular [0.135152s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/89cebdc5-78b4-4ac6-822a-9b1b5f06a0e5 WITH [{'path': '/extra/a', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-949f642a-4dba-4eb2-a1b5-2a4386838127
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "89cebdc5-78b4-4ac6-822a-9b1b5f06a0e5", "created_at": "2025-05-29T16:55:43.316591+00:00", "updated_at": "2025-05-29T16:55:43.363132+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/89cebdc5-78b4-4ac6-822a-9b1b5f06a0e5", "rel": "self"}, {"href": "http://localhost/allocations/89cebdc5-78b4-4ac6-822a-9b1b5f06a0e5", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/89cebdc5-78b4-4ac6-822a-9b1b5f06a0e5 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d37df251-03ca-4417-b19d-eee6e6dd58be
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "89cebdc5-78b4-4ac6-822a-9b1b5f06a0e5", "created_at": "2025-05-29T16:55:43.316591+00:00", "updated_at": "2025-05-29T16:55:43.363132+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/89cebdc5-78b4-4ac6-822a-9b1b5f06a0e5", "rel": "self"}, {"href": "http://localhost/allocations/89cebdc5-78b4-4ac6-822a-9b1b5f06a0e5", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description [0.065740s] ... 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-ea71bd0c-5afb-4b48-b26e-dcbb8a77943e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi [0.172003s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/ce7f9ae4-5a22-458b-97dd-999728b8d34b 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-8821804d-60c1-4fd3-b6eb-b6564f1bf3fb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "ce7f9ae4-5a22-458b-97dd-999728b8d34b", "created_at": "2025-05-29T16:55:43.286484+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ce7f9ae4-5a22-458b-97dd-999728b8d34b", "rel": "self"}, {"href": "http://localhost/deploy_templates/ce7f9ae4-5a22-458b-97dd-999728b8d34b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration1", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbid_owner_proj_mismatch [0.108648s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?owner=54321 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8f3d6cc3-2674-4ec8-81d7-a83792b7ccbb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid [0.057636s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/e2cde943-5030-4b1d-9860-080a11aecea7 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-11e48cae-5b87-4159-a496-3151f99d4bae
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: name, extra\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent [0.091896s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/a8be86e5-c50c-44c5-8a83-1d1950618d3a WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5d24142e-f313-471b-9f47-80d604e29d96
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_unicode_description [0.149478s] ... 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-a013bbf9-49b3-423f-9d1c-d4fcdb9cba97
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:43.530900+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-74efee18-36ba-465d-b0e0-219de6e0a2ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:43.530900+00:00", "updated_at": null, "description": "\u0430\u043c\u043e", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden [0.123673s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-997f6602-1526-4a63-a97b-6510249e82ab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name [0.120851s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/4744d170-59c7-45a7-bb78-251f08329fcb WITH [{'path': '/name', 'value': '[test]', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-be85dcac-7da3-46f5-a67b-2345a551e7d8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update allocation with invalid name '[test]'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail [0.064837s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/dd459a60-038d-4a37-bdca-793da3a16a89 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-f48665fd-a0f0-49b7-bece-8791c392f0be
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}'. Reason: can't insert outside of list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra [0.050150s] ... 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-cbfed016-83fd-4967-a397-92bcbf5e3571
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:43.604691+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-8ef165ae-70d8-4167-9cbb-a6cc5486c761
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:43.604691+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo [0.038956s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/45b8d51e-455c-4f62-94e7-beecc27f684b WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1c59f47e-a3c6-42a6-8698-b41597217af4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden_no_project [0.109274s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b1a3b9e7-c7ee-4c98-81e1-3fc93c844508
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version [0.042232s] ... 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\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi [0.147708s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/e9569994-0e38-459d-8fe0-5dfff09a51e1 WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9878bb96-2745-48c3-ac73-07667fbb5cc3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e9569994-0e38-459d-8fe0-5dfff09a51e1", "created_at": "2025-05-29T16:55:43.670495+00:00", "updated_at": "2025-05-29T16:55:43.712901+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/e9569994-0e38-459d-8fe0-5dfff09a51e1", "rel": "self"}, {"href": "http://localhost/allocations/e9569994-0e38-459d-8fe0-5dfff09a51e1", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/e9569994-0e38-459d-8fe0-5dfff09a51e1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-95cb4746-fa88-41e8-9422-3a2ecdce4a10
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e9569994-0e38-459d-8fe0-5dfff09a51e1", "created_at": "2025-05-29T16:55:43.670495+00:00", "updated_at": "2025-05-29T16:55:43.712901+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/e9569994-0e38-459d-8fe0-5dfff09a51e1", "rel": "self"}, {"href": "http://localhost/allocations/e9569994-0e38-459d-8fe0-5dfff09a51e1", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi [0.100049s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/2dea6587-037b-42a6-9ac0-f52dc5e35464 WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-323cde53-f836-4563-a52d-3249be08603c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "2dea6587-037b-42a6-9ac0-f52dc5e35464", "created_at": "2025-05-29T16:55:43.663161+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/2dea6587-037b-42a6-9ac0-f52dc5e35464", "rel": "self"}, {"href": "http://localhost/deploy_templates/2dea6587-037b-42a6-9ac0-f52dc5e35464", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_non_admin [0.047299s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6cca590b-4c86-4661-bf97-8e5f32a59a7a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"allocations": [{"uuid": "d1650ba7-1887-4149-bbcd-e49168886320", "created_at": "2025-05-29T16:55:43.745438+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/d1650ba7-1887-4149-bbcd-e49168886320", "rel": "self"}, {"href": "http://localhost/allocations/d1650ba7-1887-4149-bbcd-e49168886320", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "9051186e-e65a-420d-bbc8-10814837769c", "created_at": "2025-05-29T16:55:43.746435+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/9051186e-e65a-420d-bbc8-10814837769c", "rel": "self"}, {"href": "http://localhost/allocations/9051186e-e65a-420d-bbc8-10814837769c", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "4610205a-1627-41de-9cdd-ec1fd46cfbae", "created_at": "2025-05-29T16:55:43.747316+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/4610205a-1627-41de-9cdd-ec1fd46cfbae", "rel": "self"}, {"href": "http://localhost/allocations/4610205a-1627-41de-9cdd-ec1fd46cfbae", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "12a210c3-cc2b-4bfc-a34e-f79811df0fa7", "created_at": "2025-05-29T16:55:43.748222+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/12a210c3-cc2b-4bfc-a34e-f79811df0fa7", "rel": "self"}, {"href": "http://localhost/allocations/12a210c3-cc2b-4bfc-a34e-f79811df0fa7", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "cba8d0b5-b761-4833-911f-4d9e46ff9cc4", "created_at": "2025-05-29T16:55:43.749110+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/cba8d0b5-b761-4833-911f-4d9e46ff9cc4", "rel": "self"}, {"href": "http://localhost/allocations/cba8d0b5-b761-4833-911f-4d9e46ff9cc4", "rel": "bookmark"}], "node_uuid": null}]}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource [0.155560s] ... 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-ff461208-e6c0-42b0-a9b4-a466084870fa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_get_next [0.040182s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_hidden_in_lower_version [0.068925s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/7035bb19-9acb-47e2-b379-16845970e184 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7640094a-6384-46a9-ab55-50fdf3a7cfe9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"uuid": "7035bb19-9acb-47e2-b379-16845970e184", "created_at": "2025-05-29T16:55:43.818683+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/7035bb19-9acb-47e2-b379-16845970e184", "rel": "self"}, {"href": "http://localhost/allocations/7035bb19-9acb-47e2-b379-16845970e184", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/7035bb19-9acb-47e2-b379-16845970e184 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0e0d7884-efd3-402a-b911-430761fd6e39
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "7035bb19-9acb-47e2-b379-16845970e184", "created_at": "2025-05-29T16:55:43.818683+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/7035bb19-9acb-47e2-b379-16845970e184", "rel": "self"}, {"href": "http://localhost/allocations/7035bb19-9acb-47e2-b379-16845970e184", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none [0.125205s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/365e8218-2a21-47c7-ba3f-253e2316c2a6 WITH [{'path': '/name', 'value': None, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f4921b53-783f-41da-b3af-460fbde844d4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "365e8218-2a21-47c7-ba3f-253e2316c2a6", "created_at": "2025-05-29T16:55:43.749253+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/365e8218-2a21-47c7-ba3f-253e2316c2a6", "rel": "self"}, {"href": "http://localhost/allocations/365e8218-2a21-47c7-ba3f-253e2316c2a6", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/365e8218-2a21-47c7-ba3f-253e2316c2a6 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0cea669c-5b66-421a-9d14-378370625b5e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "365e8218-2a21-47c7-ba3f-253e2316c2a6", "created_at": "2025-05-29T16:55:43.749253+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/365e8218-2a21-47c7-ba3f-253e2316c2a6", "rel": "self"}, {"href": "http://localhost/allocations/365e8218-2a21-47c7-ba3f-253e2316c2a6", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_has_next [0.036415s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_null_field [0.035569s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/859da5b2-dca7-4d09-960f-67c84aafaf2f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7b76e941-148e-44c5-a180-b6b4d9fd7278
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "859da5b2-dca7-4d09-960f-67c84aafaf2f", "created_at": "2025-05-29T16:55:43.863315+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/859da5b2-dca7-4d09-960f-67c84aafaf2f", "rel": "self"}, {"href": "http://localhost/allocations/859da5b2-dca7-4d09-960f-67c84aafaf2f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_list_convert_with_links [0.031181s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name [0.151006s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/5e4b965e-44cf-4cf1-bcb5-205123e4cbcb WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-16eed4d0-a79b-4f3b-9133-0efaa91e5e5f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events [0.048365s] ... 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-98b20d81-714a-4d6f-89b1-741c844a8e44
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_singular [0.090545s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/fb2fd3fd-b74e-449c-8e75-1743fe933ed2 WITH [{'path': '/name', 'value': 'test', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a36e9dc9-92f4-4efe-b66a-098594ed93c8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "fb2fd3fd-b74e-449c-8e75-1743fe933ed2", "created_at": "2025-05-29T16:55:43.900712+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/fb2fd3fd-b74e-449c-8e75-1743fe933ed2", "rel": "self"}, {"href": "http://localhost/allocations/fb2fd3fd-b74e-449c-8e75-1743fe933ed2", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/fb2fd3fd-b74e-449c-8e75-1743fe933ed2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-56f86a00-d014-420e-bde8-8484328d07b5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "fb2fd3fd-b74e-449c-8e75-1743fe933ed2", "created_at": "2025-05-29T16:55:43.900712+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/fb2fd3fd-b74e-449c-8e75-1743fe933ed2", "rel": "self"}, {"href": "http://localhost/allocations/fb2fd3fd-b74e-449c-8e75-1743fe933ed2", "rel": "bookmark"}], "node_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present [0.103410s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/620f10bd-0276-4283-8bd9-6c58dd454f81 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-02a8dbc2-4d34-46a2-838f-278578704d2b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "620f10bd-0276-4283-8bd9-6c58dd454f81", "created_at": "2025-05-29T16:55:43.923345+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/620f10bd-0276-4283-8bd9-6c58dd454f81", "rel": "self"}, {"href": "http://localhost/allocations/620f10bd-0276-4283-8bd9-6c58dd454f81", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event [0.067068s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-852aa90c-958e-4d02-b559-e9ff52c24689
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error [0.091572s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/1f239376-e968-40fc-a7d2-e6ae4c108f21 WITH [{'path': '/name', 'value': 'new', 'op': 'replace'}] GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-b537f25d-293a-44ca-abb0-cfd166c28eb8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail [0.152917s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/9902bef9-9fb0-4873-9c51-c045d6e0c165 WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-fbb33729-2670-40da-b0fe-55fff70a2ef9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node [0.074151s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/node/a840a556-a6b4-44e1-b6bd-55e7e9e35824/allocation WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event [0.045747s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-8abed816-8115-4b01-aa86-862ce9632554
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'invalid.event' is not one of ['network.bind_port', 'network.unbind_port', 'network.delete_port']\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version [0.039049s] ... 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-acbacd8d-3549-4971-a98a-e9043f3d1f89
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed [0.057363s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/node/e3e733b4-77e9-4adf-8116-ca8bc68bd914/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_deploy_template.TestPatch.test_remove_non_existent_step_fail [0.092643s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/e1ec8e75-3cc2-414c-997e-483f8347f5be WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-98a67be8-cb46-4e7f-a8f2-65c6453c56be
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove non-existent object '1'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events [0.060817s] ... 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-0caddf50-eff2-40b1-b4d2-912b2a477fd2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed [0.119295s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/56a5d211-ac02-43f7-8ff9-6deac57f10b0 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 405 Method Not Allowed
Content-Type: application/json
Openstack-Request-Id: req-c2eb6b27-43e3-4dcc-9323-c473718c78c1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.56
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow updating allocations\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links [0.053302s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-136bd27d-6f74-4736-a153-beeecc03907e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "c696d6aa-46b7-4802-8588-c7c5ef2db0fb", "created_at": "2025-05-29T16:55:44.143970+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/c696d6aa-46b7-4802-8588-c7c5ef2db0fb", "rel": "self"}, {"href": "http://localhost/allocations/c696d6aa-46b7-4802-8588-c7c5ef2db0fb", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "95db76d7-d6c9-4875-b81a-71f076d3ae76", "created_at": "2025-05-29T16:55:44.144963+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/95db76d7-d6c9-4875-b81a-71f076d3ae76", "rel": "self"}, {"href": "http://localhost/allocations/95db76d7-d6c9-4875-b81a-71f076d3ae76", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "54210d28-c3cd-42de-a465-e40ca6616e47", "created_at": "2025-05-29T16:55:44.145784+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/54210d28-c3cd-42de-a465-e40ca6616e47", "rel": "self"}, {"href": "http://localhost/allocations/54210d28-c3cd-42de-a465-e40ca6616e47", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=54210d28-c3cd-42de-a465-e40ca6616e47"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail [0.044599s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/9a442424-9bdf-4a53-aa39-a432ee9b2b98 WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-655d5e87-b93f-4bf4-a9b5-6f40bfbef5b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events [0.066668s] ... 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-f51530b3-50dd-4ba5-bcc8-e6b914c5add1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found [0.063485s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/f65ce73d-8be1-4ea3-a0e7-ab016cfa47f4 WITH [{'path': '/name', 'value': 'b', 'op': 'replace'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e45cde9e-86d5-474b-8fa9-afa2a3834fcd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation f65ce73d-8be1-4ea3-a0e7-ab016cfa47f4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields [0.091908s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e3696edd-3212-4e1e-9bba-01ff0ff62ace
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "a9f3a428-685d-4d7b-b360-e9e5dd1fe7f8", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/a9f3a428-685d-4d7b-b360-e9e5dd1fe7f8", "rel": "self"}, {"href": "http://localhost/allocations/a9f3a428-685d-4d7b-b360-e9e5dd1fe7f8", "rel": "bookmark"}]}, {"uuid": "35067e14-3757-49bc-a557-1bad801ab1ec", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/35067e14-3757-49bc-a557-1bad801ab1ec", "rel": "self"}, {"href": "http://localhost/allocations/35067e14-3757-49bc-a557-1bad801ab1ec", "rel": "bookmark"}]}, {"uuid": "a0fad19d-31a9-4ed1-a28f-bbbc84153eaf", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/a0fad19d-31a9-4ed1-a28f-bbbc84153eaf", "rel": "self"}, {"href": "http://localhost/allocations/a0fad19d-31a9-4ed1-a28f-bbbc84153eaf", "rel": "bookmark"}]}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=a0fad19d-31a9-4ed1-a28f-bbbc84153eaf"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail [0.091162s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/6fab7c77-8efb-4656-a8c8-c29ebd11a8e5 WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-54518811-b868-4f4d-bbb1-e486acd0427e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit [0.054918s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-db628f07-dcab-4285-92fa-bb7671faaafc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "dc4f784c-ae73-4fc4-90ad-3cfe242eae35", "created_at": "2025-05-29T16:55:44.300573+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/dc4f784c-ae73-4fc4-90ad-3cfe242eae35", "rel": "self"}, {"href": "http://localhost/allocations/dc4f784c-ae73-4fc4-90ad-3cfe242eae35", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "f5d4ad11-e761-46f2-bf86-dc30b714ee32", "created_at": "2025-05-29T16:55:44.301633+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/f5d4ad11-e761-46f2-bf86-dc30b714ee32", "rel": "self"}, {"href": "http://localhost/allocations/f5d4ad11-e761-46f2-bf86-dc30b714ee32", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "8c3e9f34-57cf-4ee2-a4ac-9aedbb15b032", "created_at": "2025-05-29T16:55:44.302479+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/8c3e9f34-57cf-4ee2-a4ac-9aedbb15b032", "rel": "self"}, {"href": "http://localhost/allocations/8c3e9f34-57cf-4ee2-a4ac-9aedbb15b032", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=8c3e9f34-57cf-4ee2-a4ac-9aedbb15b032"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_owner_not_acceptable [0.095555s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/691034b6-66df-4c71-9009-5fed5a308611 WITH [{'path': '/owner', 'value': '54321', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-70928c02-374b-4a40-b633-4b63e974eeee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /owner. Only the following can be updated: name, extra\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps [0.055824s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/fb89abef-230c-4b52-9b30-ca9fbd9e2929 WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-76d5734b-38e6-4f49-9859-ac358211893f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events [0.134298s] ... 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-3a41d15b-75d6-4e60-91a1-158a7888399f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty [0.057641s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1532f250-4882-4985-93d7-0276f05c24a4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": []}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid [0.044413s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/fd840205-62ac-4cbe-a4c9-61056cb46fe1 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5d81edf0-ae07-43db-b96f-48ca2fc46269
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis [0.115143s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content
Openstack-Request-Id: req-1a44a1a2-ee95-4a54-a1cc-9eb0a634dbe6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-29f5979e-1173-4148-865a-6a800a5fec9a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step [0.082184s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/742e5b82-e94a-46d9-bdda-13cf1e1d51be 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-1134ffc5-3528-4093-adac-38aaf8d95564
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_host_id [0.113443s] ... 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-0248ac50-f0e6-44b2-8778-48ee2ad4cfdd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'] is not of type 'string', 'null'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found [0.031044s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/dfbd7577-68f8-411d-a444-82d002fe6c78 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-25f61123-ff69-4c64-afa3-8864c9f31378
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis dfbd7577-68f8-411d-a444-82d002fe6c78 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name [0.141390s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?node=node-1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ff148aae-4e8c-420b-949d-7bea6efe0798
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "e6694ee9-7310-410a-ae38-008baa800ca1", "created_at": "2025-05-29T16:55:44.455547+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/e6694ee9-7310-410a-ae38-008baa800ca1", "rel": "self"}, {"href": "http://localhost/allocations/e6694ee9-7310-410a-ae38-008baa800ca1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8db37018-98f8-491c-a9da-64fbef07e656", "created_at": "2025-05-29T16:55:44.456556+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/8db37018-98f8-491c-a9da-64fbef07e656", "rel": "self"}, {"href": "http://localhost/allocations/8db37018-98f8-491c-a9da-64fbef07e656", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "06743173-e1c4-4eb1-af32-c5d4b09c0041", "created_at": "2025-05-29T16:55:44.457426+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/06743173-e1c4-4eb1-af32-c5d4b09c0041", "rel": "self"}, {"href": "http://localhost/allocations/06743173-e1c4-4eb1-af32-c5d4b09c0041", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node [0.058517s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1eec8c83-fb3a-4ac4-b1b7-2590b6ebcf2d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot complete the requested action because chassis e74c40e0-d825-11e2-a28f-0800200c9a66 contains nodes.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type [0.091421s] ... 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-d9ec6d74-187c-447f-a720-fe32145b44fc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'] is not of type 'string', 'null'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource [0.033472s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-abda3082-eb02-4703-aa9a-2eab43f3dbf1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid [0.065989s] ... 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-7a4bca79-2d0b-4f2f-ba5a-392d305f2fe5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "a3e05e58-61ee-4a99-bbba-09076374070e", "created_at": "2025-05-29T16:55:44.554616+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/a3e05e58-61ee-4a99-bbba-09076374070e", "rel": "self"}, {"href": "http://localhost/allocations/a3e05e58-61ee-4a99-bbba-09076374070e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_event_missing_madatory_field [0.040310s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id [0.048004s] ... 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-6eab2a18-ab9d-462a-8f85-43ad83e9afaf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for device_id: DEVICE_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail [0.142413s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/95551090-07e8-4fb9-a366-36d0471850b6 WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-fd86efa3-ab75-4554-87e8-6fcb76f49731
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_event_type [0.029328s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node [0.065584s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?node=banana WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-56c34f1b-df2e-45b4-a871-eaeeb7c3b75d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node banana could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address [0.059874s] ... 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-d0806f05-bbae-4cd7-95f5-e422184cb409
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_mac_network_port_event [0.041181s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_missing_mandatory_fields_network_port_event [0.035795s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner [0.080929s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?owner=12345 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3910a069-25be-40c8-9500-b863e8356a4d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "0d05e759-865e-4003-b0b3-6f02585dbc6e", "created_at": "2025-05-29T16:55:44.705857+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/0d05e759-865e-4003-b0b3-6f02585dbc6e", "rel": "self"}, {"href": "http://localhost/allocations/0d05e759-865e-4003-b0b3-6f02585dbc6e", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "9c8138a8-e65b-4e23-8535-b1cca957e36b", "created_at": "2025-05-29T16:55:44.706749+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/9c8138a8-e65b-4e23-8535-b1cca957e36b", "rel": "self"}, {"href": "http://localhost/allocations/9c8138a8-e65b-4e23-8535-b1cca957e36b", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "319e7130-35bc-45aa-a4d8-a2ea094a917b", "created_at": "2025-05-29T16:55:44.707596+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/319e7130-35bc-45aa-a4d8-a2ea094a917b", "rel": "self"}, {"href": "http://localhost/allocations/319e7130-35bc-45aa-a4d8-a2ea094a917b", "rel": "bookmark"}], "node_uuid": null}]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none [0.137405s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/8fd70d60-727f-44c0-b7e5-505bb3421843 WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d44d15a0-db65-4a25-ab5b-ddb863b99eed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: None is not of type 'string'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id [0.091370s] ... 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-b4a5af45-e3c0-4548-b5db-a2a424be7e4f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_simple_event_type [0.055738s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule [0.066180s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/inspection_rules WITH {'uuid': 'e2d27729-87df-4be2-bc62-6479e1b917db', '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/e2d27729-87df-4be2-bc62-6479e1b917db
Openstack-Request-Id: req-7336a91e-c305-4327-be2e-22a0724f367e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e2d27729-87df-4be2-bc62-6479e1b917db", "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/e2d27729-87df-4be2-bc62-6479e1b917db", "rel": "self"}, {"href": "http://localhost/inspection/e2d27729-87df-4be2-bc62-6479e1b917db", "rel": "bookmark"}]}
GET /v1/inspection_rules/e2d27729-87df-4be2-bc62-6479e1b917db WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-96f2e89f-ca6c-4544-9365-542815dac554
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e2d27729-87df-4be2-bc62-6479e1b917db", "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/e2d27729-87df-4be2-bc62-6479e1b917db", "rel": "self"}, {"href": "http://localhost/inspection/e2d27729-87df-4be2-bc62-6479e1b917db", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed [0.130708s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?owner=12345 WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-e70fe525-41c7-4d56-9bda-3bc033e9608b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait [0.092610s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/cce6fc63-d2da-4c3a-8ba9-95354f9e03de WITH [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-abf84090-8c62-41ec-aa2f-f2de4b29dc4d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'not-a-trait' is not valid under any of the given schemas. Possible root cause: 'not-a-trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status [0.123889s] ... 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-bc34163d-7cb4-4f1a-8f52-d4b92e58ee13
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule_generate_uuid [0.064537s] ... 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/d6320a09-875e-4b8b-8da5-62f3b8f3652e
Openstack-Request-Id: req-b2af5b35-2572-4aaf-8c8e-bcfe3e9d3428
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d6320a09-875e-4b8b-8da5-62f3b8f3652e", "created_at": "2025-05-29T16:55:44.905628+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/d6320a09-875e-4b8b-8da5-62f3b8f3652e", "rel": "self"}, {"href": "http://localhost/inspection/d6320a09-875e-4b8b-8da5-62f3b8f3652e", "rel": "bookmark"}]}
GET /v1/inspection_rules/d6320a09-875e-4b8b-8da5-62f3b8f3652e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fbcfca10-d8ae-4913-9996-37d19cd03d66
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d6320a09-875e-4b8b-8da5-62f3b8f3652e", "created_at": "2025-05-29T16:55:44.905628+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/d6320a09-875e-4b8b-8da5-62f3b8f3652e", "rel": "self"}, {"href": "http://localhost/inspection/d6320a09-875e-4b8b-8da5-62f3b8f3652e", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed_mismatch [0.058529s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?owner=12345 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b9400cbb-ded6-4a15-9c08-b7d9fed0dabc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Not authorized.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long [0.107439s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/8f78bbbf-5331-4008-ab43-d40eb8d06d5c WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-639eadb1-5e46-4e6a-855a-8d9ab4243415
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events [0.080223s] ... 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-d750dd8d-ea37-4696-96bb-19293a9dbd18
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state [0.098632s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?state=allocating WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fb8e7e34-3ca7-42f3-a8cd-36f1d3eece43
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "1a5909ec-9461-4f1d-808b-76533dde5a92", "created_at": "2025-05-29T16:55:44.968177+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/1a5909ec-9461-4f1d-808b-76533dde5a92", "rel": "self"}, {"href": "http://localhost/allocations/1a5909ec-9461-4f1d-808b-76533dde5a92", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "d5aaf473-23ef-4bbf-ae11-f4a85ca49dcd", "created_at": "2025-05-29T16:55:44.969087+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/d5aaf473-23ef-4bbf-ae11-f4a85ca49dcd", "rel": "self"}, {"href": "http://localhost/allocations/d5aaf473-23ef-4bbf-ae11-f4a85ca49dcd", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "2efc1c24-c9a2-487f-ba74-9ba3c2d621d7", "created_at": "2025-05-29T16:55:44.969954+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/2efc1c24-c9a2-487f-ba74-9ba3c2d621d7", "rel": "self"}, {"href": "http://localhost/allocations/2efc1c24-c9a2-487f-ba74-9ba3c2d621d7", "rel": "bookmark"}], "node_uuid": null}]}
{1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule_with_optional_args [0.118238s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/inspection_rules WITH {'uuid': '4cf96ce4-e2a5-4623-b05a-1c9cc02dce38', '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/4cf96ce4-e2a5-4623-b05a-1c9cc02dce38
Openstack-Request-Id: req-c88d2431-c907-40a7-91ac-71df78016263
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "4cf96ce4-e2a5-4623-b05a-1c9cc02dce38", "created_at": "2025-05-29T16:55:45.029492+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/4cf96ce4-e2a5-4623-b05a-1c9cc02dce38", "rel": "self"}, {"href": "http://localhost/inspection/4cf96ce4-e2a5-4623-b05a-1c9cc02dce38", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property [0.079090s] ... 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-bb77748e-2531-47cc-b02e-b28be7d396cc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail [0.110454s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/8c3dcd85-60d3-4548-80c6-1a9cf2c2e47b 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-f8e9804e-8473-4239-b7ed-40affb87049c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach [0.091986s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '2b2171b3-aad6-4d28-ab6b-e8d7931052ce'} GOT Response: 204 No Content
Openstack-Request-Id: req-991705df-6ee9-4a55-a406-5acb3fd28050
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource [0.118547s] ... 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-268f6e07-94d0-498a-b4d0-479caae70ee5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "51f16e22-2e3c-4d29-9523-83669b714e82", "created_at": "2025-05-29T16:55:45.101905+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/51f16e22-2e3c-4d29-9523-83669b714e82", "rel": "self"}, {"href": "http://localhost/allocations/51f16e22-2e3c-4d29-9523-83669b714e82", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_empty [0.081297s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/inspection_rules WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ebf4ac75-691f-4f1b-9cf4-de8fab65df2e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"inspection_rules": []}
{3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_all [0.064523s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/inspection_rules WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-69f48e56-0f13-450c-a660-25671b451ff9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"inspection_rules": [{"uuid": "5c6055c4-4033-4e31-9a9c-21614253d5eb", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/5c6055c4-4033-4e31-9a9c-21614253d5eb", "rel": "self"}, {"href": "http://localhost/inspection/5c6055c4-4033-4e31-9a9c-21614253d5eb", "rel": "bookmark"}]}, {"uuid": "7135eb3b-7a4e-49d7-8345-eef3f86047da", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/7135eb3b-7a4e-49d7-8345-eef3f86047da", "rel": "self"}, {"href": "http://localhost/inspection/7135eb3b-7a4e-49d7-8345-eef3f86047da", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name [0.086540s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/node-39/vifs WITH {'id': '1fd56fec-bd53-441b-9444-382da2467f05'} GOT Response: 204 No Content
Openstack-Request-Id: req-a0bce3b0-7274-4be9-82c2-bdb28873963f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id [0.132487s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/bee232f5-e65e-473d-9be4-5d4086a149ab WITH {} GOT Response: 405 Method Not Allowed
Allow: DELETE, GET
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_all_invalid_api_version [0.058228s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/inspection_rules WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow inspection rules\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi [0.206129s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/ad21af66-5aba-4cb2-a172-a94d1b34083e 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-24ca076a-eca7-4a00-98f8-201fb427b366
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "ad21af66-5aba-4cb2-a172-a94d1b34083e", "created_at": "2025-05-29T16:55:45.165747+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ad21af66-5aba-4cb2-a172-a94d1b34083e", "rel": "self"}, {"href": "http://localhost/deploy_templates/ad21af66-5aba-4cb2-a172-a94d1b34083e", "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}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable [0.074823s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/node-39/vifs WITH {'id': '2c89c108-71a9-4e78-814f-cf21c3a582e2'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5295053d-e3a7-47cc-acd4-e97f3e20f6a3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"boom\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_one [0.040761s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/inspection_rules/e8eafb8f-bd03-4fff-81f2-37b083e59359 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3d1d9a80-c7c2-470f-9a8c-e6d1e8751aef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e8eafb8f-bd03-4fff-81f2-37b083e59359", "created_at": "2025-05-29T16:55:45.301929+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/e8eafb8f-bd03-4fff-81f2-37b083e59359", "rel": "self"}, {"href": "http://localhost/inspection/e8eafb8f-bd03-4fff-81f2-37b083e59359", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id [0.050522s] ... 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-a1ebe823-07b6-4e05-82d4-14e854622868
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID or name for id: invalid%id^\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version [0.101574s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id [0.041802s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'bad_id': '006816f4-7b8b-49e7-af80-e7329e9bb849'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6b8265ad-0621-4cd1-a855-5ed022ade42b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vif: 'id' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist [0.135624s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/d4f22363-0df1-4219-806e-fd4e00087d79 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-edeae7f6-49cb-4a59-8dab-3b429cbc4a7d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A deploy template with UUID d4f22363-0df1-4219-806e-fd4e00087d79 already exists.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields [0.082483s] ... 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-b87bce6c-107f-4653-b86b-2996aa7d94e6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"extra": {}, "name": null, "links": [{"href": "http://localhost/v1/allocations/445af17d-67b0-423f-aeab-22c24cd732ae", "rel": "self"}, {"href": "http://localhost/allocations/445af17d-67b0-423f-aeab-22c24cd732ae", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked [0.059744s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'ba362a11-ba2e-4d01-a9eb-53f8ac47c0f0'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-3f230345-3e18-4ae9-bcb1-0253cbe1bd82
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node  is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields [0.043107s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8bcfc578-2958-4f50-9804-5e119f467a6d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "ef5680c5-975a-44fa-a7f4-ee4f033e112d", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/ef5680c5-975a-44fa-a7f4-ee4f033e112d", "rel": "self"}, {"href": "http://localhost/allocations/ef5680c5-975a-44fa-a7f4-ee4f033e112d", "rel": "bookmark"}]}, {"uuid": "1038941e-1074-43bd-a813-c733f61d37e4", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/1038941e-1074-43bd-a813-c733f61d37e4", "rel": "self"}, {"href": "http://localhost/allocations/1038941e-1074-43bd-a813-c733f61d37e4", "rel": "bookmark"}]}, {"uuid": "1fdeeee0-9752-43ff-9744-246d420bf9ed", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/1fdeeee0-9752-43ff-9744-246d420bf9ed", "rel": "self"}, {"href": "http://localhost/allocations/1fdeeee0-9752-43ff-9744-246d420bf9ed", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail [0.080443s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/42b9eec3-8359-4f2d-8c5d-d5b3ec5ee0cc 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-ca64f2b9-4a8a-47b9-81e6-fd74861da73a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}'. Reason: list assignment index out of range\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid [0.044484s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?fields=node_uuid&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-03a80678-f502-458e-934e-85db40c24db0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"links": [{"href": "http://localhost/v1/allocations/9605e2ce-9ad2-49de-bd49-e3204e321c49", "rel": "self"}, {"href": "http://localhost/allocations/9605e2ce-9ad2-49de-bd49-e3204e321c49", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"links": [{"href": "http://localhost/v1/allocations/a347b81b-9bc7-423e-a938-042f15aa9674", "rel": "self"}, {"href": "http://localhost/allocations/a347b81b-9bc7-423e-a938-042f15aa9674", "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=a347b81b-9bc7-423e-a938-042f15aa9674"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found [0.110146s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/doesntexist/vifs WITH {'id': 'b60e2be6-52e1-4e0d-9774-ad4494010257'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1b87c003-da95-43fd-b439-7788f8463555
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields [0.070240s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/34e41372-177d-4693-97f2-2ec946355ff3?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-2253d16c-3470-4a83-8cd2-ed9f105d6f2b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface [0.107495s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/05edb761-a009-4a1f-86b2-2be3b1082cd0 WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-15cd9611-9f40-4755-b759-9432ce6a26e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one [0.035913s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/59112465-c914-45dc-97d5-76dc6b6c2710 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b69eb45f-f17d-418b-b398-acbfbd4c2f68
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "59112465-c914-45dc-97d5-76dc6b6c2710", "created_at": "2025-05-29T16:55:45.646739+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/59112465-c914-45dc-97d5-76dc6b6c2710", "rel": "self"}, {"href": "http://localhost/allocations/59112465-c914-45dc-97d5-76dc6b6c2710", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid [0.112245s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'bb5e4115-adb7-44c0-b51b-6500d93c62f6', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-85b21e81-324b-40f5-a7e0-21f9375c377e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.67
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot specify both port_uuid and portgroup_uuid\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id [0.057846s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/32d980c4-0972-4167-ace0-b00f20d55cd0 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f560287f-b6d0-4d6b-a899-37061f597a58
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "32d980c4-0972-4167-ace0-b00f20d55cd0", "created_at": "2025-05-29T16:55:45.667127+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/32d980c4-0972-4167-ace0-b00f20d55cd0", "rel": "self"}, {"href": "http://localhost/deploy_templates/32d980c4-0972-4167-ace0-b00f20d55cd0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields [0.044542s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/a7627557-067e-47d7-8587-4f6d417e4921?fields=resource_class,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e32d8f32-4db7-48cc-bf22-df1455ce0923
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"extra": {}, "resource_class": "baremetal", "links": [{"href": "http://localhost/v1/allocations/a7627557-067e-47d7-8587-4f6d417e4921", "rel": "self"}, {"href": "http://localhost/allocations/a7627557-067e-47d7-8587-4f6d417e4921", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version [0.041761s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/835afa19-2eab-403d-b22e-78c4e8e7e327 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_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid_old [0.086065s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'c084c1c9-6970-4ebf-8ed2-7dd871e7409d', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 204 No Content
Openstack-Request-Id: req-b376dcf3-cf69-4e25-856e-8ca314f552e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version [0.073148s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/30db8cc4-2fe4-4241-bc73-a7fd4a1cb61f WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check [0.037515s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/ba!na!na! WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach [0.039867s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/817f5607-6298-4343-8d1d-c45711cb1d38 GOT Response: 204 No Content
Openstack-Request-Id: req-851d9bb5-8e21-45b4-8d0d-b591112503cd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_double_json_in_name [0.057700s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/c3d3fe67-3674-487b-bcb5-e2edf97aa346 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d8c5bb7d-4adb-4313-a895-a33c1976a271
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "c3d3fe67-3674-487b-bcb5-e2edf97aa346", "created_at": "2025-05-29T16:55:45.819521+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/c3d3fe67-3674-487b-bcb5-e2edf97aa346", "rel": "self"}, {"href": "http://localhost/allocations/c3d3fe67-3674-487b-bcb5-e2edf97aa346", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_one_invalid_api_version [0.530075s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/inspection_rules/08acfe3a-5b08-45f6-8ed9-1a867c26d239 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_node.TestAttachDetachVif.test_vif_detach_by_node_name [0.036751s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/vifs/4aa6d937-5a9f-4a83-9f8a-cb8223d8cc37 GOT Response: 204 No Content
Openstack-Request-Id: req-a08c66ae-634f-4aeb-9904-0577a8ebabaa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked [0.037982s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/d6a1e2f1-aed1-4792-abd5-f370e4aacc83 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-788eb1ac-d74e-4711-9f62-8e8ab300fe44
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node  is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_rule_data [0.090544s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/inspection_rules WITH {'uuid': '316faba5-8d83-4286-8f43-c31fb0130ae4', '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/316faba5-8d83-4286-8f43-c31fb0130ae4
Openstack-Request-Id: req-ac5e839c-1e3d-4fca-8851-257cc7e162de
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "316faba5-8d83-4286-8f43-c31fb0130ae4", "created_at": "2025-05-29T16:55:45.921053+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/316faba5-8d83-4286-8f43-c31fb0130ae4", "rel": "self"}, {"href": "http://localhost/inspection/316faba5-8d83-4286-8f43-c31fb0130ae4", "rel": "bookmark"}]}
GET /v1/inspection_rules/316faba5-8d83-4286-8f43-c31fb0130ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9ace6b6d-9757-40d2-ba93-47ca5c02a5b5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "316faba5-8d83-4286-8f43-c31fb0130ae4", "created_at": "2025-05-29T16:55:45.921053+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/316faba5-8d83-4286-8f43-c31fb0130ae4", "rel": "self"}, {"href": "http://localhost/inspection/316faba5-8d83-4286-8f43-c31fb0130ae4", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name [0.155359s] ... 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-ddd5a87c-32da-4960-886d-1ef36e9e859d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "815cf850-146b-4c44-8810-480a273a7372", "created_at": "2025-05-29T16:55:45.854990+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/815cf850-146b-4c44-8810-480a273a7372", "rel": "self"}, {"href": "http://localhost/deploy_templates/815cf850-146b-4c44-8810-480a273a7372", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "priority": 42}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json [0.100970s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/e0225287-64eb-4d96-884b-dd14a25e8dad.json WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c741691b-03d1-409a-a0d7-e2eefff92511
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "e0225287-64eb-4d96-884b-dd14a25e8dad", "created_at": "2025-05-29T16:55:45.921048+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/e0225287-64eb-4d96-884b-dd14a25e8dad", "rel": "self"}, {"href": "http://localhost/allocations/e0225287-64eb-4d96-884b-dd14a25e8dad", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_sensitive_rule_hides_data [0.092950s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/inspection_rules WITH {'uuid': '44220d91-1dea-41ac-a708-6e5a15ea738b', '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/44220d91-1dea-41ac-a708-6e5a15ea738b
Openstack-Request-Id: req-b1d0858d-ccb6-4ecb-8972-8fbeb6d198ef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "44220d91-1dea-41ac-a708-6e5a15ea738b", "created_at": "2025-05-29T16:55:46.023372+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/44220d91-1dea-41ac-a708-6e5a15ea738b", "rel": "self"}, {"href": "http://localhost/inspection/44220d91-1dea-41ac-a708-6e5a15ea738b", "rel": "bookmark"}]}
GET /v1/inspection_rules/44220d91-1dea-41ac-a708-6e5a15ea738b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-78647873-937b-4a35-b403-3ae77c04d0e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "44220d91-1dea-41ac-a708-6e5a15ea738b", "created_at": "2025-05-29T16:55:46.023372+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/44220d91-1dea-41ac-a708-6e5a15ea738b", "rel": "self"}, {"href": "http://localhost/inspection/44220d91-1dea-41ac-a708-6e5a15ea738b", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version [0.097273s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/CUSTOM_DT1 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_list_hides_sensitive_data [0.094375s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/inspection_rules WITH {'uuid': 'd5ea85b3-bb96-4353-80f8-22d2cb5a8f36', '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/d5ea85b3-bb96-4353-80f8-22d2cb5a8f36
Openstack-Request-Id: req-7af40683-6a51-4299-86cb-fc90cb3a8196
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d5ea85b3-bb96-4353-80f8-22d2cb5a8f36", "created_at": "2025-05-29T16:55:46.099333+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/d5ea85b3-bb96-4353-80f8-22d2cb5a8f36", "rel": "self"}, {"href": "http://localhost/inspection/d5ea85b3-bb96-4353-80f8-22d2cb5a8f36", "rel": "bookmark"}]}
POST /v1/inspection_rules WITH {'uuid': '153c7cc1-1af3-48e1-bb6f-01c852c38103', '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/153c7cc1-1af3-48e1-bb6f-01c852c38103
Openstack-Request-Id: req-024b3e33-ef7f-4fff-a9d3-82e2ff691308
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "153c7cc1-1af3-48e1-bb6f-01c852c38103", "created_at": "2025-05-29T16:55:46.115690+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/153c7cc1-1af3-48e1-bb6f-01c852c38103", "rel": "self"}, {"href": "http://localhost/inspection/153c7cc1-1af3-48e1-bb6f-01c852c38103", "rel": "bookmark"}]}
GET /v1/inspection_rules?detail=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a3f64e0b-906c-4298-84a1-488697d73df7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"inspection_rules": [{"uuid": "d5ea85b3-bb96-4353-80f8-22d2cb5a8f36", "created_at": "2025-05-29T16:55:46.099333+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/d5ea85b3-bb96-4353-80f8-22d2cb5a8f36", "rel": "self"}, {"href": "http://localhost/inspection/d5ea85b3-bb96-4353-80f8-22d2cb5a8f36", "rel": "bookmark"}]}, {"uuid": "153c7cc1-1af3-48e1-bb6f-01c852c38103", "created_at": "2025-05-29T16:55:46.115690+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/153c7cc1-1af3-48e1-bb6f-01c852c38103", "rel": "self"}, {"href": "http://localhost/inspection/153c7cc1-1af3-48e1-bb6f-01c852c38103", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json [0.119695s] ... 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-731c256c-7abb-4be9-82a9-610bdf8c8f40
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "bbe52e26-06ae-495a-a371-842645d3c391", "created_at": "2025-05-29T16:55:46.088689+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bbe52e26-06ae-495a-a371-842645d3c391", "rel": "self"}, {"href": "http://localhost/deploy_templates/bbe52e26-06ae-495a-a371-842645d3c391", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_one [0.084761s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/inspection_rules WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2b34957e-3a4a-46dc-8f70-351f3213c55b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"inspection_rules": [{"uuid": "82f014b4-2fbd-4624-af54-9728fc901ce6", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/82f014b4-2fbd-4624-af54-9728fc901ce6", "rel": "self"}, {"href": "http://localhost/inspection/82f014b4-2fbd-4624-af54-9728fc901ce6", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPatch.test_patch_invalid_api_version [0.031638s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/inspection_rules/3ecbce53-ae79-4c6e-ae73-b3b2e535e11e 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\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json_not_found [0.104285s] ... 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-f28d48ca-e062-4bbe-9fef-b2623fc309d4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template CUSTOM_DT1.json could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPatch.test_set_sensitive_field [0.085971s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/inspection_rules WITH {'uuid': '24229826-47bb-4e78-b877-2d90173942d8', '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/24229826-47bb-4e78-b877-2d90173942d8
Openstack-Request-Id: req-8cdc9b27-3b40-4086-bcae-328950b0b868
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "24229826-47bb-4e78-b877-2d90173942d8", "created_at": "2025-05-29T16:55:46.294879+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/24229826-47bb-4e78-b877-2d90173942d8", "rel": "self"}, {"href": "http://localhost/inspection/24229826-47bb-4e78-b877-2d90173942d8", "rel": "bookmark"}]}
PATCH /v1/inspection_rules/24229826-47bb-4e78-b877-2d90173942d8 WITH [{'op': 'replace', 'path': '/sensitive', 'value': True}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-795e83f5-c44d-4fb3-8c2b-86c011d6865e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "24229826-47bb-4e78-b877-2d90173942d8", "created_at": "2025-05-29T16:55:46.294879+00:00", "updated_at": "2025-05-29T16:55:46.320111+00:00", "description": "an inspection rule", "priority": 0, "sensitive": true, "phase": "main", "conditions": null, "actions": null, "links": [{"href": "http://localhost/v1/inspection/24229826-47bb-4e78-b877-2d90173942d8", "rel": "self"}, {"href": "http://localhost/inspection/24229826-47bb-4e78-b877-2d90173942d8", "rel": "bookmark"}]}
PATCH /v1/inspection_rules/24229826-47bb-4e78-b877-2d90173942d8 WITH [{'op': 'replace', 'path': '/sensitive', 'value': False}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-98b9e924-aafb-4af7-9ee4-4baf1d775ea1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'op': 'replace', 'path': '/sensitive', 'value': False}]'. Reason: Inspection rules cannot have the sensitive flag unset.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name [0.419106s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/cceeb30f-be7e-42b8-8168-e919037c7c41 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0ad31c43-5c18-4f81-9452-0ae5ca50112e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "cceeb30f-be7e-42b8-8168-e919037c7c41", "created_at": "2025-05-29T16:55:46.330340+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/cceeb30f-be7e-42b8-8168-e919037c7c41", "rel": "self"}, {"href": "http://localhost/allocations/cceeb30f-be7e-42b8-8168-e919037c7c41", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_child_node [0.075432s] ... 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_deploy_template.TestPatch.test_update_invalid_name [0.134849s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/1cd777d0-ebc3-4147-849b-969534638d6a WITH [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ba276430-f493-4291-8596-9398c74c4fb6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'aa:bb_cc' is not valid under any of the given schemas. Possible root cause: 'aa:bb_cc' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_not_found [0.089779s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/5ac872b7-1030-4862-839b-2ef40eb3d46f.json WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1178bfbe-63fa-4240-a340-1b557b2695d8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 5ac872b7-1030-4862-839b-2ef40eb3d46f.json could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_child_node_list [0.061250s] ... 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.TestCheckCleanSteps.test__check_clean_steps_not_list [0.035850s] ... 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_deploy_template.TestPatch.test_update_name_custom_trait [0.092937s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/0a11d5ac-182d-4a28-9b06-d0bf6a36ebe5 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-161d2952-a366-4ac1-a110-f5e93f440bb5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0a11d5ac-182d-4a28-9b06-d0bf6a36ebe5", "created_at": "2025-05-29T16:55:46.463640+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0a11d5ac-182d-4a28-9b06-d0bf6a36ebe5", "rel": "self"}, {"href": "http://localhost/deploy_templates/0a11d5ac-182d-4a28-9b06-d0bf6a36ebe5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix [0.106856s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/66b9dc2c-010b-4937-ba23-a701e3df68a8 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fd8e3526-713d-4c41-9084-2e053daf1d21
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "66b9dc2c-010b-4937-ba23-a701e3df68a8", "created_at": "2025-05-29T16:55:46.539697+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/66b9dc2c-010b-4937-ba23-a701e3df68a8", "rel": "self"}, {"href": "http://localhost/allocations/66b9dc2c-010b-4937-ba23-a701e3df68a8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found [0.644685s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/doesntexist/vifs/ebe628ff-8f48-4afe-8ccc-b74692d97b6c GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6eff32c7-ba3f-4a71-b3b4-a52c424a75d7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid [0.080385s] ... 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_deploy_template.TestPatch.test_update_name_standard_trait [0.079532s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/6d3f1724-31f9-4a8f-bcd9-0a94f49dacae WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-90754fe5-8973-45e2-adf6-dd3ad74ea730
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6d3f1724-31f9-4a8f-bcd9-0a94f49dacae", "created_at": "2025-05-29T16:55:46.573672+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/6d3f1724-31f9-4a8f-bcd9-0a94f49dacae", "rel": "self"}, {"href": "http://localhost/deploy_templates/6d3f1724-31f9-4a8f-bcd9-0a94f49dacae", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_owner_field [0.089738s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/4b4665d3-df96-43cb-9497-3f24fa8045c3?fields=owner WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f0528587-5a78-435b-a084-d3663fb1a876
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"owner": "12345", "links": [{"href": "http://localhost/v1/allocations/4b4665d3-df96-43cb-9497-3f24fa8045c3", "rel": "self"}, {"href": "http://localhost/allocations/4b4665d3-df96-43cb-9497-3f24fa8045c3", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid [0.059735s] ... 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.TestAttachDetachVif.test_vif_list [0.075270s] ... 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-b8b1c431-566d-40a1-b19e-460e83c948ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"vifs": []}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found [0.063717s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/1575f8c9-c0ae-4e17-91d1-29ede4d9bcca WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2e4f7b27-897e-4147-b66f-734678dbf20c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 1575f8c9-c0ae-4e17-91d1-29ede4d9bcca could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links [0.062469s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/e51f2f0c-a34e-482c-a6c6-db5750c6e399 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-682e1197-28f5-4c2d-89a3-9f0b83f42600
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e51f2f0c-a34e-482c-a6c6-db5750c6e399", "created_at": "2025-05-29T16:55:46.690446+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/e51f2f0c-a34e-482c-a6c6-db5750c6e399", "rel": "self"}, {"href": "http://localhost/allocations/e51f2f0c-a34e-482c-a6c6-db5750c6e399", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/e51f2f0c-a34e-482c-a6c6-db5750c6e399 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-56020f50-8243-4339-a0a6-261f14679d99
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e51f2f0c-a34e-482c-a6c6-db5750c6e399", "created_at": "2025-05-29T16:55:46.690446+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/e51f2f0c-a34e-482c-a6c6-db5750c6e399", "rel": "self"}, {"href": "http://localhost/allocations/e51f2f0c-a34e-482c-a6c6-db5750c6e399", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /allocations/e51f2f0c-a34e-482c-a6c6-db5750c6e399 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-413e5827-32ba-45de-bd04-1c4f6b0c4058
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e51f2f0c-a34e-482c-a6c6-db5750c6e399", "created_at": "2025-05-29T16:55:46.690446+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/e51f2f0c-a34e-482c-a6c6-db5750c6e399", "rel": "self"}, {"href": "http://localhost/allocations/e51f2f0c-a34e-482c-a6c6-db5750c6e399", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid [0.130392s] ... 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.TestAttachDetachVif.test_vif_subcontroller_old_version [0.131862s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create [0.107992s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'f213de19-89a1-4585-8eff-f3a95d23cd5f', '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/f213de19-89a1-4585-8eff-f3a95d23cd5f
Openstack-Request-Id: req-a2150e60-b12d-4822-9425-b2ee04d246df
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "f213de19-89a1-4585-8eff-f3a95d23cd5f", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f213de19-89a1-4585-8eff-f3a95d23cd5f", "rel": "self"}, {"href": "http://localhost/deploy_templates/f213de19-89a1-4585-8eff-f3a95d23cd5f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /v1/deploy_templates/f213de19-89a1-4585-8eff-f3a95d23cd5f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-92cc479f-21c8-4d8b-b56a-2129662984f6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "f213de19-89a1-4585-8eff-f3a95d23cd5f", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f213de19-89a1-4585-8eff-f3a95d23cd5f", "rel": "self"}, {"href": "http://localhost/deploy_templates/f213de19-89a1-4585-8eff-f3a95d23cd5f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many [0.106573s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6801e52c-bfda-4f0e-ac9e-7a3824e42079
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "73de6ff5-b2f0-4768-a875-93947333c986", "created_at": "2025-05-29T16:55:46.748248+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/73de6ff5-b2f0-4768-a875-93947333c986", "rel": "self"}, {"href": "http://localhost/allocations/73de6ff5-b2f0-4768-a875-93947333c986", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "acdbba3b-5cc2-44e7-8570-d0273b2923d9", "created_at": "2025-05-29T16:55:46.749152+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/acdbba3b-5cc2-44e7-8570-d0273b2923d9", "rel": "self"}, {"href": "http://localhost/allocations/acdbba3b-5cc2-44e7-8570-d0273b2923d9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "dba14be8-e972-49c9-8ab7-a6f199250ed9", "created_at": "2025-05-29T16:55:46.750202+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/dba14be8-e972-49c9-8ab7-a6f199250ed9", "rel": "self"}, {"href": "http://localhost/allocations/dba14be8-e972-49c9-8ab7-a6f199250ed9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "5076cca6-c7c0-4fbb-8b00-57c570588994", "created_at": "2025-05-29T16:55:46.751065+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/5076cca6-c7c0-4fbb-8b00-57c570588994", "rel": "self"}, {"href": "http://localhost/allocations/5076cca6-c7c0-4fbb-8b00-57c570588994", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "623078d0-0479-44c8-9c83-6a2fec6f5b44", "created_at": "2025-05-29T16:55:46.751923+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/623078d0-0479-44c8-9c83-6a2fec6f5b44", "rel": "self"}, {"href": "http://localhost/allocations/623078d0-0479-44c8-9c83-6a2fec6f5b44", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value [0.071796s] ... 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_deploy_template.TestPost.test_create_complex_step_args [0.093987s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '85ff1e36-be8a-4ce0-9633-7224a5d488b3', '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/85ff1e36-be8a-4ce0-9633-7224a5d488b3
Openstack-Request-Id: req-ec416930-b487-4f90-a441-375e287a84e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "85ff1e36-be8a-4ce0-9633-7224a5d488b3", "created_at": "2025-05-29T16:55:46.870151+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/85ff1e36-be8a-4ce0-9633-7224a5d488b3", "rel": "self"}, {"href": "http://localhost/deploy_templates/85ff1e36-be8a-4ce0-9633-7224a5d488b3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory [0.109712s] ... 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-fc6f5975-b91c-4c11-9429-03949a8d2c33
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.81
{"inventory": {"cpu": {"count": 1, "model_name": "qemu64", "architecture": "x86_64"}}, "plugin_data": {"disks": [{"name": "/dev/vda"}]}}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface [0.055939s] ... 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_allocation.TestListAllocations.test_one [0.111014s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cbebaeb0-3c63-4dd5-b30c-5f4193a3f004
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "3200aa51-e78f-4d2f-91c0-981cef403e70", "created_at": "2025-05-29T16:55:46.895048+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/3200aa51-e78f-4d2f-91c0-981cef403e70", "rel": "self"}, {"href": "http://localhost/allocations/3200aa51-e78f-4d2f-91c0-981cef403e70", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id [0.068563s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b964e29e-0eaa-4957-aced-0400c3ab5c6b', '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/b964e29e-0eaa-4957-aced-0400c3ab5c6b
Openstack-Request-Id: req-d20e52da-2345-4fc2-ab1f-9fc2f9e9c838
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "b964e29e-0eaa-4957-aced-0400c3ab5c6b", "created_at": "2025-05-29T16:55:46.937167+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b964e29e-0eaa-4957-aced-0400c3ab5c6b", "rel": "self"}, {"href": "http://localhost/deploy_templates/b964e29e-0eaa-4957-aced-0400c3ab5c6b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /v1/deploy_templates/b964e29e-0eaa-4957-aced-0400c3ab5c6b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-25559072-01f2-4937-832f-77160bb64a7f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "b964e29e-0eaa-4957-aced-0400c3ab5c6b", "created_at": "2025-05-29T16:55:46.937167+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b964e29e-0eaa-4957-aced-0400c3ab5c6b", "rel": "self"}, {"href": "http://localhost/deploy_templates/b964e29e-0eaa-4957-aced-0400c3ab5c6b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory_no_inventory [0.059604s] ... 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-c2a1884a-8d66-491a-adde-0fdc882abb2f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.81
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node inventory record for node 1 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key [0.055118s] ... 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_allocation.TestListAllocations.test_sort_key [0.059030s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f5ca2bbb-7e70-4f01-b6b5-2e64e9baa0c1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "05751e99-f3c2-4d83-81eb-d79652b3548a", "created_at": "2025-05-29T16:55:46.972778+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/05751e99-f3c2-4d83-81eb-d79652b3548a", "rel": "self"}, {"href": "http://localhost/allocations/05751e99-f3c2-4d83-81eb-d79652b3548a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "52042c84-5ffc-4f73-9cc2-0cd89f373ff9", "created_at": "2025-05-29T16:55:46.973847+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/52042c84-5ffc-4f73-9cc2-0cd89f373ff9", "rel": "self"}, {"href": "http://localhost/allocations/52042c84-5ffc-4f73-9cc2-0cd89f373ff9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "5d92b4a4-de21-4832-b322-ca13985e5dc3", "created_at": "2025-05-29T16:55:46.974777+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/5d92b4a4-de21-4832-b322-ca13985e5dc3", "rel": "self"}, {"href": "http://localhost/allocations/5d92b4a4-de21-4832-b322-ca13985e5dc3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_old_version [0.033132s] ... 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\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error [0.061909s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '862c0bdb-1b6b-4141-b02e-c121b38f4a45', '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-d9676cd2-1a5a-4711-b863-5ec3ed3a7d93
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value [0.054658s] ... 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_allocation.TestListAllocations.test_sort_key_allowed [0.059262s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?sort_key=name WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ca223440-cfda-40ce-a4ac-62b84a0f905b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "9edccf10-d457-4ad6-98a0-4b519c990768", "created_at": "2025-05-29T16:55:47.041976+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/9edccf10-d457-4ad6-98a0-4b519c990768", "rel": "self"}, {"href": "http://localhost/allocations/9edccf10-d457-4ad6-98a0-4b519c990768", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "592aae06-6284-43e4-be2a-59c22f1663fb", "created_at": "2025-05-29T16:55:47.039539+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/592aae06-6284-43e4-be2a-59c22f1663fb", "rel": "self"}, {"href": "http://localhost/allocations/592aae06-6284-43e4-be2a-59c22f1663fb", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "ae4822ef-36e2-46dd-86ce-81863dec2558", "created_at": "2025-05-29T16:55:47.038603+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/ae4822ef-36e2-46dd-86ce-81863dec2558", "rel": "self"}, {"href": "http://localhost/allocations/ae4822ef-36e2-46dd-86ce-81863dec2558", "rel": "bookmark"}], "node_uuid": null}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict [0.060455s] ... 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_allocation.TestListAllocations.test_sort_key_invalid [0.065407s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-031e3f04-0346-4b9f-a2d1-c02dd4fafe40
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/allocations?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5c3e661b-747f-40b2-a834-6fa5b5afc2af
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/allocations?sort_key=internal_info WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-e461c2f7-cdbf-4ec3-a1ed-27dd0586e3f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"internal_info\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/allocations?sort_key=properties WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9c56b8a4-f0ef-4012-b8bb-d7c5f8d455e4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"properties\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_named_parent_node_succeeds [0.162456s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'uuid': '7f7af451-e322-4b26-8f11-36f8bb6e8a81', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/7f7af451-e322-4b26-8f11-36f8bb6e8a81
Openstack-Request-Id: req-8b602511-2acf-48db-b627-a24ff8d66df5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "7f7af451-e322-4b26-8f11-36f8bb6e8a81", "created_at": "2025-05-29T16:55:47.136918+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/7f7af451-e322-4b26-8f11-36f8bb6e8a81", "rel": "self"}, {"href": "http://localhost/nodes/7f7af451-e322-4b26-8f11-36f8bb6e8a81", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/7f7af451-e322-4b26-8f11-36f8bb6e8a81/ports", "rel": "self"}, {"href": "http://localhost/nodes/7f7af451-e322-4b26-8f11-36f8bb6e8a81/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7f7af451-e322-4b26-8f11-36f8bb6e8a81/states", "rel": "self"}, {"href": "http://localhost/nodes/7f7af451-e322-4b26-8f11-36f8bb6e8a81/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7f7af451-e322-4b26-8f11-36f8bb6e8a81/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7f7af451-e322-4b26-8f11-36f8bb6e8a81/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7f7af451-e322-4b26-8f11-36f8bb6e8a81/volume", "rel": "self"}, {"href": "http://localhost/nodes/7f7af451-e322-4b26-8f11-36f8bb6e8a81/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill [0.118015s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '48958c5f-a54d-4873-a9de-4e3ad6d74b99', 'owner': None, 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/48958c5f-a54d-4873-a9de-4e3ad6d74b99
Openstack-Request-Id: req-c4885557-a0e4-4ffb-899e-4c9fb680cecb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "48958c5f-a54d-4873-a9de-4e3ad6d74b99", "created_at": "2025-05-29T16:55:47.210605+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/48958c5f-a54d-4873-a9de-4e3ad6d74b99", "rel": "self"}, {"href": "http://localhost/allocations/48958c5f-a54d-4873-a9de-4e3ad6d74b99", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/48958c5f-a54d-4873-a9de-4e3ad6d74b99 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2653c679-13bd-482d-82b5-feee66b19b29
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "48958c5f-a54d-4873-a9de-4e3ad6d74b99", "created_at": "2025-05-29T16:55:47.210605+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/48958c5f-a54d-4873-a9de-4e3ad6d74b99", "rel": "self"}, {"href": "http://localhost/allocations/48958c5f-a54d-4873-a9de-4e3ad6d74b99", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid [0.155294s] ... 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.TestNodeParentNodePost.test_create_node_with_parent_node [0.146198s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'uuid': '7423b2e3-e89b-4a04-903f-516c802b0bfa', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/7423b2e3-e89b-4a04-903f-516c802b0bfa
Openstack-Request-Id: req-a8e1880c-b9e4-4ec2-9761-f5913294362b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "7423b2e3-e89b-4a04-903f-516c802b0bfa", "created_at": "2025-05-29T16:55:47.273082+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/7423b2e3-e89b-4a04-903f-516c802b0bfa", "rel": "self"}, {"href": "http://localhost/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/ports", "rel": "self"}, {"href": "http://localhost/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/states", "rel": "self"}, {"href": "http://localhost/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/volume", "rel": "self"}, {"href": "http://localhost/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/volume", "rel": "bookmark"}]}
GET /v1/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c695ee9f-4901-4618-ba19-249d157027f9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "7423b2e3-e89b-4a04-903f-516c802b0bfa", "created_at": "2025-05-29T16:55:47.273082+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/7423b2e3-e89b-4a04-903f-516c802b0bfa", "rel": "self"}, {"href": "http://localhost/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/ports", "rel": "self"}, {"href": "http://localhost/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/states", "rel": "self"}, {"href": "http://localhost/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/volume", "rel": "self"}, {"href": "http://localhost/nodes/7423b2e3-e89b-4a04-903f-516c802b0bfa/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test_check__check_steps_wrappers [0.082941s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_copy_instance_uuid [0.108540s] ... 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/c8c4161e-04e1-4015-9a0e-fa940fb352df
Openstack-Request-Id: req-5678082f-2603-4b64-89ba-9b43a66d8c09
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "c8c4161e-04e1-4015-9a0e-fa940fb352df", "created_at": "2025-05-29T16:55:47.298906+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/c8c4161e-04e1-4015-9a0e-fa940fb352df", "rel": "self"}, {"href": "http://localhost/allocations/c8c4161e-04e1-4015-9a0e-fa940fb352df", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/c8c4161e-04e1-4015-9a0e-fa940fb352df WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5536d3ed-ebf2-4722-9e0c-0c9ce60e484a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "c8c4161e-04e1-4015-9a0e-fa940fb352df", "created_at": "2025-05-29T16:55:47.298906+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/c8c4161e-04e1-4015-9a0e-fa940fb352df", "rel": "self"}, {"href": "http://localhost/allocations/c8c4161e-04e1-4015-9a0e-fa940fb352df", "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.085503s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ff0d5dd8-c34e-4be0-9b97-df7cb95851d8', 'owner': None, 'node': '84b4391c-d0ca-4209-b382-5c15a7109d4b'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-aa61d441-d6b9-4c9f-80b0-d00e7948e645
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 84b4391c-d0ca-4209-b382-5c15a7109d4b could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid [0.422681s] ... 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/659ae009-3be8-45b8-905d-49151b8c10be
Openstack-Request-Id: req-d7ce98c5-5d6c-4bc7-935e-3c209cb1cb7b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "659ae009-3be8-45b8-905d-49151b8c10be", "created_at": "2025-05-29T16:55:47.426669+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/659ae009-3be8-45b8-905d-49151b8c10be", "rel": "self"}, {"href": "http://localhost/deploy_templates/659ae009-3be8-45b8-905d-49151b8c10be", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /v1/deploy_templates/659ae009-3be8-45b8-905d-49151b8c10be WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5534c5ba-bfbe-46fe-9aae-f0773ffe1521
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "659ae009-3be8-45b8-905d-49151b8c10be", "created_at": "2025-05-29T16:55:47.426669+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/659ae009-3be8-45b8-905d-49151b8c10be", "rel": "self"}, {"href": "http://localhost/deploy_templates/659ae009-3be8-45b8-905d-49151b8c10be", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_parent_node_fail_wrong_version [0.146180s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'uuid': '0d5db82e-66b9-44d8-bf63-f7bd10af988e', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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-05851c42-68eb-4551-862b-8d1b80c879b5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed [0.071853s] ... 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-b490f3f6-3abc-4845-8cad-efa4d93aa1fb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.57
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot set node when creating an allocation in this API version\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version [0.065392s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'a4c66e88-9770-4990-afba-1026b9f5f03d', '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\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_get_child_node [0.190160s] ... 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-337e5ba1-d018-4e7a-9080-9b76b8ab28b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"children": ["af6a301c-604d-4684-af9c-be8f27becde3"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps [0.045036s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '6d3f13d8-b22c-4e15-95b5-4313175ee25c', 'steps': [], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b9854253-f0cc-4f3c-8eef-8d484e61833c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is too short\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group [0.095346s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name [0.093784s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '44b268cc-ac8f-41ef-b440-cae0ca452ca5', 'owner': None, 'node': 'backfill-me'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/44b268cc-ac8f-41ef-b440-cae0ca452ca5
Openstack-Request-Id: req-08c5c70e-cde6-4747-b26a-64cd6470f07b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "44b268cc-ac8f-41ef-b440-cae0ca452ca5", "created_at": "2025-05-29T16:55:47.558802+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/44b268cc-ac8f-41ef-b440-cae0ca452ca5", "rel": "self"}, {"href": "http://localhost/allocations/44b268cc-ac8f-41ef-b440-cae0ca452ca5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/44b268cc-ac8f-41ef-b440-cae0ca452ca5 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-015b34ab-bc07-4648-8f6b-67ec1163e361
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "44b268cc-ac8f-41ef-b440-cae0ca452ca5", "created_at": "2025-05-29T16:55:47.558802+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/44b268cc-ac8f-41ef-b440-cae0ca452ca5", "rel": "self"}, {"href": "http://localhost/allocations/44b268cc-ac8f-41ef-b440-cae0ca452ca5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra [0.051167s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'cb149337-0ea4-4997-b722-ab2788d5ac0d', '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-aed607c4-1e4b-4d15-9ae2-689d0af38514
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'object', 'null'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo [0.042942s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'a9830c28-2ae2-483f-8e26-c7e45cb97c1c', '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-72ce9506-5b10-47aa-a1d7-d6b91e0ebf05
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_node_children_by_single_node [0.121095s] ... 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-9dcc8efc-effd-42b3-8224-92be08bab15e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"children": ["486e147a-4b5b-4812-9d72-4d99b5f4ff08", "e3a74224-11b8-4c63-ab7f-bcf6205a806d"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid [0.110367s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class [0.097142s] ... 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/1812d64d-06b4-4d0e-9e7a-5ff1329bd343
Openstack-Request-Id: req-3e11bceb-b642-4413-a671-0eae299e0b2b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1812d64d-06b4-4d0e-9e7a-5ff1329bd343", "created_at": "2025-05-29T16:55:47.684147+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/1812d64d-06b4-4d0e-9e7a-5ff1329bd343", "rel": "self"}, {"href": "http://localhost/allocations/1812d64d-06b4-4d0e-9e7a-5ff1329bd343", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/1812d64d-06b4-4d0e-9e7a-5ff1329bd343 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2433ac76-a847-4daf-bbc2-84835a0abde6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1812d64d-06b4-4d0e-9e7a-5ff1329bd343", "created_at": "2025-05-29T16:55:47.684147+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/1812d64d-06b4-4d0e-9e7a-5ff1329bd343", "rel": "self"}, {"href": "http://localhost/allocations/1812d64d-06b4-4d0e-9e7a-5ff1329bd343", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes [0.066220s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d496f240-2a30-4153-b95c-82cbc8d5dfd1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "din", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name [0.088555s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 42, 'uuid': '59059642-d723-4bfe-868b-9466e3029690', '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-25e41846-54a3-4e8f-919e-eaf06559e787
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'string'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation [0.072067s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '9a0902c3-955f-484b-9d08-c1c203358c23', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/9a0902c3-955f-484b-9d08-c1c203358c23
Openstack-Request-Id: req-78a4dfe5-3e10-475e-b671-56eda0a9712c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "9a0902c3-955f-484b-9d08-c1c203358c23", "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/9a0902c3-955f-484b-9d08-c1c203358c23", "rel": "self"}, {"href": "http://localhost/allocations/9a0902c3-955f-484b-9d08-c1c203358c23", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/9a0902c3-955f-484b-9d08-c1c203358c23 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9458c89f-4b19-4bfc-8564-8327958f2725
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "9a0902c3-955f-484b-9d08-c1c203358c23", "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/9a0902c3-955f-484b-9d08-c1c203358c23", "rel": "self"}, {"href": "http://localhost/allocations/9a0902c3-955f-484b-9d08-c1c203358c23", "rel": "bookmark"}], "node_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id [0.125781s] ... 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-a51aec8d-ac1a-4017-9da3-a8bc5c02551e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /chassis_id. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_cannot_see_children_if_not_owned [0.099539s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?parent_node=02740ae8-48ed-4e60-94d9-4dfc81f09695 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5a7eb96f-7fe6-4327-9a18-466486dd988a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": []}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid [0.069152s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '10b0cdc0-0bab-427f-b9d3-4a8e2a4fc65b', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-05810a90-16b0-494f-b5d6-e8c7860c9f67
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: this/is/not a/node/name\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_ignores_parent_if_include_children_indicated [0.044833s] ... 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-bce257fd-34e3-40e9-b14e-66392f23b3cb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "din", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "2d817b12-e20c-4a03-b664-97f9946b3bd6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/2d817b12-e20c-4a03-b664-97f9946b3bd6", "rel": "self"}, {"href": "http://localhost/nodes/2d817b12-e20c-4a03-b664-97f9946b3bd6", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found [0.070842s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'e36a4dde-16ea-49d2-a220-cf20a7c4c910', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0c54bdc6-8fe4-4364-a7eb-b293bbeda49f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none [0.178855s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': None, 'uuid': '2a6f41da-1c79-4935-92f1-1455fa0002ed', '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-211922d0-6f12-472d-9fec-92ce8accc77d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: None is not of type 'string'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_lists_empty_for_specific_parent [0.112862s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?parent_node=39d6b61d-bf2e-4bea-92ab-be70d9c88b59 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c133855b-2534-4bc6-b5d7-58a735d3bc8d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": []}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid [0.164850s] ... 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-436f147e-0d2f-426b-99a8-77b7d7ca67e3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:47.871867+00:00", "updated_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_deploy_template.TestPost.test_create_invalid_field_steps [0.107315s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '296b250e-7c53-4ba2-b65e-1d6e4abf6a50', 'steps': {}, 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5d5006bc-9960-440e-a66d-27f23c227f18
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: {} is not of type 'array'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id [0.126718s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {'foo': 123}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0e306a77-4531-4b97-83a5-5ca2ec6063b8', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/0e306a77-4531-4b97-83a5-5ca2ec6063b8
Openstack-Request-Id: req-c461dd90-35f0-4d1e-9321-3d7c90bf5fd3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0e306a77-4531-4b97-83a5-5ca2ec6063b8", "created_at": "2025-05-29T16:55:47.995161+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/0e306a77-4531-4b97-83a5-5ca2ec6063b8", "rel": "self"}, {"href": "http://localhost/allocations/0e306a77-4531-4b97-83a5-5ca2ec6063b8", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/0e306a77-4531-4b97-83a5-5ca2ec6063b8 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d65a7a5a-afec-4318-ac17-0fc81a3693bd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0e306a77-4531-4b97-83a5-5ca2ec6063b8", "created_at": "2025-05-29T16:55:47.995161+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/0e306a77-4531-4b97-83a5-5ca2ec6063b8", "rel": "self"}, {"href": "http://localhost/allocations/0e306a77-4531-4b97-83a5-5ca2ec6063b8", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 [0.113962s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'a3bf410d-991d-441b-8bf1-a35f360060d2', '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-f51153e0-8238-4ff9-bc2d-be1a855c4e7b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a dict' is not of type 'object'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_children_only_parent [0.146113s] ... 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-205b30cf-1ea1-4509-8a80-a81c14c360be
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "lessee": "1c712688-20fa-462c-b440-3e88e9a51004", "name": "din", "parent_node": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok [0.196199s] ... 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-ac788a63-2abe-4916-85a8-44e4734ab671
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:48.029078+00:00", "updated_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_deploy_template.TestPost.test_create_invalid_step_field_args2 [0.049776s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '579e5edd-5ab9-4779-95f5-8ae8781b4a5a', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-035a47c8-f835-4445-9c66-c4adf03e9812
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is not of type 'object'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error [0.197642s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ca45c5a8-d96b-450d-ada7-f4257bc3b956', 'owner': None} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-dd552580-63e2-455b-b932-89477b318fd1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo [0.097163s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '8a9a0c7f-6a18-45dc-88ad-fe0dc5d1ebf6', '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-92178014-57fa-4e75-ab45-67268af8c899
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root [0.127427s] ... 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-8e9ee34c-4552-45a8-901a-efe7408480bf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:48.239751+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_include_children [0.201384s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?include_children=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b91254a8-2a23-4038-acee-f8d169d9beb0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "din", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "e03da713-a9d5-4c6f-bd03-f5874e70b5c1", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/e03da713-a9d5-4c6f-bd03-f5874e70b5c1", "rel": "self"}, {"href": "http://localhost/nodes/e03da713-a9d5-4c6f-bd03-f5874e70b5c1", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 [0.070716s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'e055716d-51e6-4e99-a01a-5c7ae0170143', '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-f77a0edd-bf02-413a-8644-71df63414387
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [3] is not of type 'string'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent [0.069547s] ... 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-50388d6a-5db1-4c86-912c-0013cfe5e3ef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid [0.181714s] ... 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/cc24fc98-f7e9-491d-b20b-00afbe4b419d
Openstack-Request-Id: req-0e00b955-ee80-4209-b389-a66b145f47b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "cc24fc98-f7e9-491d-b20b-00afbe4b419d", "created_at": "2025-05-29T16:55:48.391553+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/cc24fc98-f7e9-491d-b20b-00afbe4b419d", "rel": "self"}, {"href": "http://localhost/allocations/cc24fc98-f7e9-491d-b20b-00afbe4b419d", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/cc24fc98-f7e9-491d-b20b-00afbe4b419d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0939f4e1-a904-4896-82e3-ec111917ec4c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "cc24fc98-f7e9-491d-b20b-00afbe4b419d", "created_at": "2025-05-29T16:55:48.391553+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/cc24fc98-f7e9-491d-b20b-00afbe4b419d", "rel": "self"}, {"href": "http://localhost/allocations/cc24fc98-f7e9-491d-b20b-00afbe4b419d", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 [0.075559s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'cc7af705-36ae-4ba1-a463-df7dd190a14b', '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-7465dff9-f17d-4650-9ade-6a7612c82f94
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history [0.127428s] ... 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-0746f9fe-e8b1-4968-98b0-b4a5bbe53fc2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": []}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority [0.051073s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '532f14f9-3b58-4647-9c3a-af7c2816ef7f', '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-ab6e9aed-23c6-4984-9527-4c978a79a56e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: -1 is less than the minimum of 0\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version [0.075583s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'bc881da1-cd84-428b-a233-61bee0db65e7', 'owner': None} GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning [0.127797s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/9cbe6b3e-1658-4f45-9adb-11d5a2588b7d WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-26d2b63b-ed1e-4314-8f37-3370ebc661a3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 9cbe6b3e-1658-4f45-9adb-11d5a2588b7d can not be updated while a state transition is in progress.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_detail [0.056612s] ... 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-e7cfb8eb-54ff-478a-940d-ca3048ab8cbf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "120de944-354c-423c-9b11-7628054997d8", "created_at": "2025-05-29T16:55:48.518973+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/120de944-354c-423c-9b11-7628054997d8", "rel": "self"}]}, {"uuid": "fe36af87-e3ee-4241-a9ba-83e545da2c16", "created_at": "2025-05-29T16:55:48.519981+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/fe36af87-e3ee-4241-a9ba-83e545da2c16", "rel": "self"}]}, {"uuid": "40228077-2e43-48c3-9fed-3943dc6b7b30", "created_at": "2025-05-29T16:55:48.520757+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/40228077-2e43-48c3-9fed-3943dc6b7b30", "rel": "self"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority [0.080986s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '9b4012d9-0bc4-4999-a966-2a118c027543', '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-7721b25e-c6ff-44d2-b525-c34a4db3557a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format [0.119956s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'bc5824d8-8cd2-4300-904d-e38ad5109678', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-50fd6450-145a-49af-938a-f1d624bf4146
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: invalid-format\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail [0.128430s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/f0733c79-ac8e-402a-8ff2-a51206aa58a6 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-941757ec-9d23-4de7-837a-c701f9797e41
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "f0733c79-ac8e-402a-8ff2-a51206aa58a6", "created_at": "2025-05-29T16:55:48.575866+00:00", "updated_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/f0733c79-ac8e-402a-8ff2-a51206aa58a6", "rel": "self"}, {"href": "http://localhost/nodes/f0733c79-ac8e-402a-8ff2-a51206aa58a6", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f0733c79-ac8e-402a-8ff2-a51206aa58a6/ports", "rel": "self"}, {"href": "http://localhost/nodes/f0733c79-ac8e-402a-8ff2-a51206aa58a6/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_entries [0.117809s] ... 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-8e74bd2a-ab71-4ded-9353-7afbeafcc22a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "fc3a1301-7fa1-47c8-82e5-756a21437aef", "created_at": "2025-05-29T16:55:48.622498+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/fc3a1301-7fa1-47c8-82e5-756a21437aef", "rel": "self"}]}, {"uuid": "39f57187-990c-4684-9a97-310984affc76", "created_at": "2025-05-29T16:55:48.623721+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/39f57187-990c-4684-9a97-310984affc76", "rel": "self"}]}, {"uuid": "2641edca-c4ad-4b07-80fd-617bf13299e0", "created_at": "2025-05-29T16:55:48.624571+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/2641edca-c4ad-4b07-80fd-617bf13299e0", "rel": "self"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step [0.140799s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '74c5c19f-d356-4662-b1eb-9fd031e4ead7', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3933d39c-c7f4-4861-b45e-242ac08b60d0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'string'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_with_sort [0.073455s] ... 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-9d436593-4d5f-480b-96ac-8919f40e6d02
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "8cfce363-2f51-407e-9e6a-9af4a2c3c5c9", "created_at": "2025-05-29T16:55:48.726871+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/8cfce363-2f51-407e-9e6a-9af4a2c3c5c9", "rel": "self"}]}, {"uuid": "ec690adf-502f-4f1f-85ce-7981b443d882", "created_at": "2025-05-29T16:55:48.726133+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/ec690adf-502f-4f1f-85ce-7981b443d882", "rel": "self"}]}, {"uuid": "9784f4c1-21b0-46c6-acc9-fdb7eecd5048", "created_at": "2025-05-29T16:55:48.725350+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9784f4c1-21b0-46c6-acc9-fdb7eecd5048", "rel": "self"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait [0.152488s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'FOO_BAR'], 'uuid': '5263bfbc-5d24-41f7-96ae-97886465c841', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-54d472b9-330b-4778-8de8-b24cd0bb03a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: 'FOO_BAR' is not valid under any of the given schemas. Possible root cause: 'FOO_BAR' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version [0.057839s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid [0.149286s] ... 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-9eb3dfe4-0447-482f-b1f4-263c3c108417
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name ''\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name [0.130000s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'c4871fee-5bc5-4c6d-a82e-15cb8aae061a', '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/c4871fee-5bc5-4c6d-a82e-15cb8aae061a
Openstack-Request-Id: req-d271a328-ae33-4618-9194-1bd614497b83
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "c4871fee-5bc5-4c6d-a82e-15cb8aae061a", "created_at": "2025-05-29T16:55:48.838431+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c4871fee-5bc5-4c6d-a82e-15cb8aae061a", "rel": "self"}, {"href": "http://localhost/deploy_templates/c4871fee-5bc5-4c6d-a82e-15cb8aae061a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid [0.088205s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'aa:bb_cc', 'resource_class': 'baremetal', 'traits': [], 'uuid': '06c75294-4203-4ce6-a4cf-6a7001a21ec0', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-58693c92-200a-496c-be92-36ddc8546a2f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_pagination [0.128037s] ... 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-2905f451-5398-4dc8-9589-5327fa291ff0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "7fcaf5fc-a73c-4c7b-ad99-19f6dbe18219", "created_at": "2025-05-29T16:55:48.868232+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7fcaf5fc-a73c-4c7b-ad99-19f6dbe18219", "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=7fcaf5fc-a73c-4c7b-ad99-19f6dbe18219"}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=7fcaf5fc-a73c-4c7b-ad99-19f6dbe18219 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-278ef4eb-9849-4d4d-a99e-732172c68514
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "9e446f5a-dc14-47f5-9833-e8efe16e7098", "created_at": "2025-05-29T16:55:48.871488+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9e446f5a-dc14-47f5-9833-e8efe16e7098", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree1',created_at=2025-05-29T16:55:48Z,event='meow',event_type=None,id=1,node_id=1,severity=None,updated_at=None,user='peaches',uuid=7fcaf5fc-a73c-4c7b-ad99-19f6dbe18219)&sort_key=created_at&sort_dir=asc&fields=uuid,created_at,severity,event&limit=1&marker=9e446f5a-dc14-47f5-9833-e8efe16e7098"}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=9e446f5a-dc14-47f5-9833-e8efe16e7098 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f349d5db-baff-4661-bd30-922e72e7f7d0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "c0fec9ed-ec8d-4041-ae1f-a85d7477cdfa", "created_at": "2025-05-29T16:55:48.872242+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c0fec9ed-ec8d-4041-ae1f-a85d7477cdfa", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree2',created_at=2025-05-29T16:55:48Z,event='purr',event_type=None,id=2,node_id=1,severity=None,updated_at=None,user='sage',uuid=9e446f5a-dc14-47f5-9833-e8efe16e7098)&sort_key=created_at&sort_dir=asc&fields=uuid,created_at,severity,event&limit=1&marker=c0fec9ed-ec8d-4041-ae1f-a85d7477cdfa"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable [0.103718s] ... 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-1adb6be3-5981-4869-925a-2596620f6417
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok [0.072502s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'foo', 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f184c1da-0945-49ef-958d-f1a4f0fd5f13', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/f184c1da-0945-49ef-958d-f1a4f0fd5f13
Openstack-Request-Id: req-92f8e256-f611-4977-936c-72c0eb95e375
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "f184c1da-0945-49ef-958d-f1a4f0fd5f13", "created_at": "2025-05-29T16:55:48.943564+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/f184c1da-0945-49ef-958d-f1a4f0fd5f13", "rel": "self"}, {"href": "http://localhost/allocations/f184c1da-0945-49ef-958d-f1a4f0fd5f13", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/f184c1da-0945-49ef-958d-f1a4f0fd5f13 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3b9c0490-593c-4e7b-8512-4a3d0fa55ae0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "f184c1da-0945-49ef-958d-f1a4f0fd5f13", "created_at": "2025-05-29T16:55:48.943564+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/f184c1da-0945-49ef-958d-f1a4f0fd5f13", "rel": "self"}, {"href": "http://localhost/allocations/f184c1da-0945-49ef-958d-f1a4f0fd5f13", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait [0.093001s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'not-a-trait', 'uuid': 'f1d771b2-293d-4eed-9b95-e0905bd20cad', '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-3a4af78c-5f01-40de-9cd8-2b99b6c43837
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not-a-trait' is not valid under any of the given schemas. Possible root cause: 'not-a-trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class [0.043429s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': 'a24506f1-c995-40d9-846e-f348d7da4b5e', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-173354ad-1433-435c-a4f4-320cd03162f2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource_class field is mandatory when not backfilling\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid [0.070958s] ... 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-84bff8f8-9aaa-47c1-84b8-9791469aecc5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name 'i am invalid'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item [0.113902s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e5cc703a-3ce8-4c7d-89ec-08293cb3c1c1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-feb4dc6c-1fb2-4f42-80b2-d26a1c30692a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"uuid": "e5cc703a-3ce8-4c7d-89ec-08293cb3c1c1", "created_at": "2025-05-29T16:55:49.004351+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/e5cc703a-3ce8-4c7d-89ec-08293cb3c1c1", "rel": "self"}]}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long [0.123256s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '95bb5b6e-25cb-4c36-bf76-ed424de662a1', '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-699245c5-41f8-413c-a4dd-8efb052cb628
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner [0.103369s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8b835318-7801-4963-9249-78f5acbd1c7a', 'owner': '12345'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/8b835318-7801-4963-9249-78f5acbd1c7a
Openstack-Request-Id: req-7143c81f-00f0-406e-8e19-8ece39a02672
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "8b835318-7801-4963-9249-78f5acbd1c7a", "created_at": "2025-05-29T16:55:49.096750+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/8b835318-7801-4963-9249-78f5acbd1c7a", "rel": "self"}, {"href": "http://localhost/allocations/8b835318-7801-4963-9249-78f5acbd1c7a", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/8b835318-7801-4963-9249-78f5acbd1c7a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e15994f9-774b-4064-8d71-12079f1e7ab1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "8b835318-7801-4963-9249-78f5acbd1c7a", "created_at": "2025-05-29T16:55:49.096750+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/8b835318-7801-4963-9249-78f5acbd1c7a", "rel": "self"}, {"href": "http://localhost/allocations/8b835318-7801-4963-9249-78f5acbd1c7a", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name [0.039615s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'uuid': 'e80f46f7-e3bb-43fd-b311-46921e23abcf', '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-34b1363d-9e4b-4350-9920-5b62a01d6053
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'name' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_auto_filled [0.080250s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '5604d363-bd96-4690-9593-3b4ec55e1cec', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/5604d363-bd96-4690-9593-3b4ec55e1cec
Openstack-Request-Id: req-bf7c59b6-1b71-456e-9093-33cea1d91383
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "5604d363-bd96-4690-9593-3b4ec55e1cec", "created_at": "2025-05-29T16:55:49.164920+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/5604d363-bd96-4690-9593-3b4ec55e1cec", "rel": "self"}, {"href": "http://localhost/allocations/5604d363-bd96-4690-9593-3b4ec55e1cec", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/5604d363-bd96-4690-9593-3b4ec55e1cec WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f1995625-c455-4176-acda-19e97e40f339
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "5604d363-bd96-4690-9593-3b4ec55e1cec", "created_at": "2025-05-29T16:55:49.164920+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/5604d363-bd96-4690-9593-3b4ec55e1cec", "rel": "self"}, {"href": "http://localhost/allocations/5604d363-bd96-4690-9593-3b4ec55e1cec", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps [0.065206s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '21a6b2df-d8f5-402a-9b75-14071b49a78e', 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-759309e1-12c5-45f4-969c-372a11b71112
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'steps' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok [0.222055s] ... 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-cea1217e-bdf6-4211-8d2b-40d44b03cca4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "deadbeef-0000-1111-2222-333333333333", "created_at": "2025-05-29T16:55:49.081445+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333/ports", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_allowed [0.048919s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '730c3141-4ed4-4081-85dc-7ef9f8f09577', 'owner': '12345'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-16ee8f14-f2d3-4199-baae-86374b436369
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args [0.054959s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '1ac014e2-7ad4-42d7-872b-79e11392792c', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f6c6eec4-158a-4520-8cb6-62a102bfa542
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'args' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_not_found [0.239425s] ... 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-2c1568d7-5735-4816-925a-93096a1424f5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node history record 52949728-59fc-4651-84c8-b0a16b469372 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_my_projet_id [0.053678s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '23bc3ee5-1483-4b0e-80cc-eff91921f202', 'owner': '12345'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-212fed09-68cf-4ac0-a81c-ebf05a40aeca
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with an owner Project ID value 12345 not matching the requester Project ID 0987. Policy baremetal:allocation:create_restricted is required for this capability.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long [0.056808s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'traits': [], 'uuid': 'd5e9f259-313b-4d86-8b67-49c2198ea27d', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-bb8f6ca1-baeb-43e6-a800-46d72e2c0f37
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface [0.094252s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '6fe68e0c-fdf8-47cc-a111-a5f0e0554b07', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d926dc31-0b60-40e2-a72d-0220666392c7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'interface' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_old_version [0.108556s] ... 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_deploy_template.TestPost.test_create_no_mandatory_step_field_priority [0.063934s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '60c0399d-a265-464a-bafd-59ed9bfb8cf7', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-cb002606-7e2d-4801-a1e2-fd8309a6cce0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'priority' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra [0.065638s] ... 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': 'd03973bf-7c6b-4b6b-a9b4-34b06b357310', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/d03973bf-7c6b-4b6b-a9b4-34b06b357310
Openstack-Request-Id: req-873b3b96-9cba-4d78-bf88-4c51bee29149
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d03973bf-7c6b-4b6b-a9b4-34b06b357310", "created_at": "2025-05-29T16:55:49.409292+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/d03973bf-7c6b-4b6b-a9b4-34b06b357310", "rel": "self"}, {"href": "http://localhost/allocations/d03973bf-7c6b-4b6b-a9b4-34b06b357310", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/d03973bf-7c6b-4b6b-a9b4-34b06b357310 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1e287764-41d6-45b0-9aa7-270f1f27c4d1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d03973bf-7c6b-4b6b-a9b4-34b06b357310", "created_at": "2025-05-29T16:55:49.409292+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/d03973bf-7c6b-4b6b-a9b4-34b06b357310", "rel": "self"}, {"href": "http://localhost/allocations/d03973bf-7c6b-4b6b-a9b4-34b06b357310", "rel": "bookmark"}], "node_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved [0.256561s] ... 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-c448c485-f736-4658-8362-3d558b597219
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'management'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-a9bb594a-6a2f-4499-8a40-f60ed7faa8e9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'states'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1e9b09c9-f81b-4de1-981b-4996f7367ca4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'vendor_passthru'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0a9bf4fa-7f1a-4849-beca-97f26d35cb24
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"vendor_passthru\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'detail'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3de6238a-41cd-48eb-9110-3a791192ebbd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"detail\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'validate'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-60aa8e56-4925-44cb-aaca-97100e47b9e6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step [0.060029s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '1b20dacd-bada-44bd-8337-a7004e41d956', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-e740781b-b7ba-42f7-a61f-74d45b70ed19
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'step' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_as_list [0.092465s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?shard=foo&shard=bar WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b5d4f860-7ad2-4cec-b4d4-121c8e6727ef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "6c763954-8cb7-4c1f-828a-5020eed83a3b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/6c763954-8cb7-4c1f-828a-5020eed83a3b", "rel": "self"}, {"href": "http://localhost/nodes/6c763954-8cb7-4c1f-828a-5020eed83a3b", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes [0.094076s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': ['node-1', '40f2e3a0-84d0-4574-8d10-62f7044f872d'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '620d7573-1758-4a67-894b-7d2c907c374e', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/620d7573-1758-4a67-894b-7d2c907c374e
Openstack-Request-Id: req-17af0b2e-ea1c-46ba-bbb3-dd80deb6ba6c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "620d7573-1758-4a67-894b-7d2c907c374e", "created_at": "2025-05-29T16:55:49.526548+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "40f2e3a0-84d0-4574-8d10-62f7044f872d"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/620d7573-1758-4a67-894b-7d2c907c374e", "rel": "self"}, {"href": "http://localhost/allocations/620d7573-1758-4a67-894b-7d2c907c374e", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/620d7573-1758-4a67-894b-7d2c907c374e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e35df031-a906-4203-a64d-71765cd00e8a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "620d7573-1758-4a67-894b-7d2c907c374e", "created_at": "2025-05-29T16:55:49.526548+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "40f2e3a0-84d0-4574-8d10-62f7044f872d"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/620d7573-1758-4a67-894b-7d2c907c374e", "rel": "self"}, {"href": "http://localhost/allocations/620d7573-1758-4a67-894b-7d2c907c374e", "rel": "bookmark"}], "node_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid [0.056252s] ... 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-32416baa-bac7-49cb-89dd-427ebb6d7d48
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name [0.060704s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'HW_CPU_X86_VMX', 'uuid': '0ff482dc-5ec0-4dd7-8afc-319a1fde2e32', '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/0ff482dc-5ec0-4dd7-8afc-319a1fde2e32
Openstack-Request-Id: req-20510f9d-dfed-401a-a91f-848eeacbf88d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0ff482dc-5ec0-4dd7-8afc-319a1fde2e32", "created_at": "2025-05-29T16:55:49.559099+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0ff482dc-5ec0-4dd7-8afc-319a1fde2e32", "rel": "self"}, {"href": "http://localhost/deploy_templates/0ff482dc-5ec0-4dd7-8afc-319a1fde2e32", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_detail [0.069916s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?shard=foo,bar WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-44768389-4311-4b14-baab-d5b5099727b9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "a03bba57-ca65-4fb8-a8a8-da68d4a938b1", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/a03bba57-ca65-4fb8-a8a8-da68d4a938b1", "rel": "self"}, {"href": "http://localhost/nodes/a03bba57-ca65-4fb8-a8a8-da68d4a938b1", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra [0.077797s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'd003ae8c-e8b4-4a3c-9d93-bff5bf411575', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/d003ae8c-e8b4-4a3c-9d93-bff5bf411575
Openstack-Request-Id: req-23e1229f-4f4e-45da-b6d8-ac30a5d92600
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d003ae8c-e8b4-4a3c-9d93-bff5bf411575", "created_at": "2025-05-29T16:55:49.616255+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/d003ae8c-e8b4-4a3c-9d93-bff5bf411575", "rel": "self"}, {"href": "http://localhost/allocations/d003ae8c-e8b4-4a3c-9d93-bff5bf411575", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard [0.041940s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?shard=foo WITH {'fields': 'shard'} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9e222183-b65e-44b9-b466-cfda2237eddf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"shard": "foo", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden [0.104060s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/59d3a544-6377-4cbc-a431-cd60bb40797c WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': 'a4ce1adc-12f6-4b2a-9b69-c295ef1897f2'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-fb1655bc-0aa8-411e-b31d-2df2d8c2faf9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /allocation_uuid. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard_detail_fails_wrong_version [0.042536s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-032bac7b-34d9-449f-80a3-37daa63cf110
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority [0.150206s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '4eed1954-07da-4b07-a44e-ffa6afd2b5a9', '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/4eed1954-07da-4b07-a44e-ffa6afd2b5a9
Openstack-Request-Id: req-71f59473-8126-4e36-b8ce-ea5834f539f4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "4eed1954-07da-4b07-a44e-ffa6afd2b5a9", "created_at": "2025-05-29T16:55:49.699112+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/4eed1954-07da-4b07-a44e-ffa6afd2b5a9", "rel": "self"}, {"href": "http://localhost/deploy_templates/4eed1954-07da-4b07-a44e-ffa6afd2b5a9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": "42"}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits [0.092439s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': 'd721155c-950d-409f-9b89-375cbd2be740', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/d721155c-950d-409f-9b89-375cbd2be740
Openstack-Request-Id: req-fc250611-0f92-4241-be3b-cb6acc4cd09a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d721155c-950d-409f-9b89-375cbd2be740", "created_at": "2025-05-29T16:55:49.701246+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/d721155c-950d-409f-9b89-375cbd2be740", "rel": "self"}, {"href": "http://localhost/allocations/d721155c-950d-409f-9b89-375cbd2be740", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/d721155c-950d-409f-9b89-375cbd2be740 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-73e9dffa-8aa7-4c0c-baa4-fcafd92c483a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d721155c-950d-409f-9b89-375cbd2be740", "created_at": "2025-05-29T16:55:49.701246+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/d721155c-950d-409f-9b89-375cbd2be740", "rel": "self"}, {"href": "http://localhost/allocations/d721155c-950d-409f-9b89-375cbd2be740", "rel": "bookmark"}], "node_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden [0.084283s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/1afb9b68-ac21-4ee9-a946-1e7af5437738 WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': 'a36a0716-b3df-43cc-9b4a-65eae5aeb84f'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-af9204ba-0cd7-4fd7-a757-90e159c8dad8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /allocation_uuid. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard_fails_wrong_version [0.071753s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?shard=foo WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-8c0c3b24-f357-499d-b626-46d0b65d60b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate [0.067690s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b5496a22-8fe0-425d-8b15-52ff697eb4e5', '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-dfb67273-a1d4-4bb0-9a6c-c37d669d6b99
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed [0.114733s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '44f28604-9d7a-4c58-b336-56afcfa2e8b9', 'owner': None} GOT Response: 405 Method Not Allowed
Allow: DELETE, GET
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_sharded [0.123022s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sharded=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-12e8f3c1-51f1-4ed4-96e9-8841860a075e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
GET /v1/nodes?sharded=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f8be5dde-0d8c-4688-94c4-6241755e91e7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"uuid": "015a8678-c54c-46d8-86c8-cc508a23f550", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/015a8678-c54c-46d8-86c8-cc508a23f550", "rel": "self"}, {"href": "http://localhost/nodes/015a8678-c54c-46d8-86c8-cc508a23f550", "rel": "bookmark"}]}, {"uuid": "6660a374-5908-4136-ba7a-d3e5090c40e9", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/6660a374-5908-4136-ba7a-d3e5090c40e9", "rel": "self"}, {"href": "http://localhost/nodes/6660a374-5908-4136-ba7a-d3e5090c40e9", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden [0.158776s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/0dec8276-71bd-4068-8881-df7131a8ce25 WITH [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9d370cc1-1671-49f9-80b9-9beed90f4a67
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /conductor. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_single_shard_detail [0.064095s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3e1bb068-0e50-4bca-82e5-a5db297918e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:49.916724+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios [0.148307s] ... 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-e86fb352-9695-498b-9fda-5d4de9e40dfb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"bios": [{"created_at": "2025-05-29T16:55:49.887748+00:00", "updated_at": null, "name": "virtualization", "value": "on", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden [0.053724s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/a214f550-77c8-4363-8ed8-54b8232122f7 WITH [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f891cc77-252c-4b3e-b120-fd5aa1df9cc8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.44
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /deploy_step. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_node_uuid_not_allowed [0.122155s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f607693f-8217-4ce0-93a0-c5f045dd9961', 'owner': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0297fc4a-2545-495b-b21e-892e9dd2e22d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: Additional properties are not allowed ('node_uuid' was unexpected)\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_deprecated_without_owner [0.067204s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'fec39c10-4639-48bf-a947-3594b53fd89d', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/fec39c10-4639-48bf-a947-3594b53fd89d
Openstack-Request-Id: req-bb10be75-8d20-4276-8890-5484fc278826
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "fec39c10-4639-48bf-a947-3594b53fd89d", "created_at": "2025-05-29T16:55:50.028615+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/fec39c10-4639-48bf-a947-3594b53fd89d", "rel": "self"}, {"href": "http://localhost/allocations/fec39c10-4639-48bf-a947-3594b53fd89d", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/fec39c10-4639-48bf-a947-3594b53fd89d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-da2ac7ee-5bdb-423c-bfe5-663e09c39e48
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "fec39c10-4639-48bf-a947-3594b53fd89d", "created_at": "2025-05-29T16:55:50.028615+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/fec39c10-4639-48bf-a947-3594b53fd89d", "rel": "self"}, {"href": "http://localhost/allocations/fec39c10-4639-48bf-a947-3594b53fd89d", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_false [0.096863s] ... 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-caad0929-5295-496f-a71b-ae25c0b8cedb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"bios": [{"created_at": "2025-05-29T16:55:49.992587+00:00", "updated_at": null, "name": "virtualization", "value": "on", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field [0.115088s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-41a23e6a-7b45-4cad-91e3-81dfb655ddeb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:49.999930+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_forbidden [0.046470s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '3574f9d4-8dd7-4ad7-95ff-8f5e20251143', 'owner': None} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a87d453c-acdb-449d-8746-9da611530eb9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name [0.139991s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/cdfffe7a-5bfb-45f2-ae61-4ef94ab22610 WITH [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-11360566-b6ae-4d2b-8165-5748b9684e74
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"this-is-my-node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version [0.063985s] ... 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-da2b706b-5a1c-45ed-8aa7-7896c3ecf344
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.73
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_normal [0.077849s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '7d44f9d0-4b15-45a4-9f47-28307cc16f76', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/7d44f9d0-4b15-45a4-9f47-28307cc16f76
Openstack-Request-Id: req-258f4cf3-1e24-48c6-bf73-4246d2c7aa8b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "7d44f9d0-4b15-45a4-9f47-28307cc16f76", "created_at": "2025-05-29T16:55:50.141485+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/7d44f9d0-4b15-45a4-9f47-28307cc16f76", "rel": "self"}, {"href": "http://localhost/allocations/7d44f9d0-4b15-45a4-9f47-28307cc16f76", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/7d44f9d0-4b15-45a4-9f47-28307cc16f76 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-22bb3520-67d4-446a-aea0-c03babf0ce9d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "7d44f9d0-4b15-45a4-9f47-28307cc16f76", "created_at": "2025-05-29T16:55:50.141485+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/7d44f9d0-4b15-45a4-9f47-28307cc16f76", "rel": "self"}, {"href": "http://localhost/allocations/7d44f9d0-4b15-45a4-9f47-28307cc16f76", "rel": "bookmark"}], "node_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden [0.075675s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/82bd10e5-e5ed-46e2-b9a6-53bf7b74d55e WITH [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-61b3e037-2dcb-4915-ad3f-cf4b5ebc86bf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /fault. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field_fails_wrong_version [0.105838s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d26e304f-5e74-4fd6-a849-5a9ecc9b6e31
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:50.117089+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version [0.073621s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_older_version [0.074393s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '3b867044-14ae-4280-a7f3-b8057ff92a1d'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/3b867044-14ae-4280-a7f3-b8057ff92a1d
Openstack-Request-Id: req-a860866c-063a-4726-bb07-6b6c4c4547ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"uuid": "3b867044-14ae-4280-a7f3-b8057ff92a1d", "created_at": "2025-05-29T16:55:50.228017+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/3b867044-14ae-4280-a7f3-b8057ff92a1d", "rel": "self"}, {"href": "http://localhost/allocations/3b867044-14ae-4280-a7f3-b8057ff92a1d", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/3b867044-14ae-4280-a7f3-b8057ff92a1d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b919a373-501c-461f-a63c-0531a9079238
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"uuid": "3b867044-14ae-4280-a7f3-b8057ff92a1d", "created_at": "2025-05-29T16:55:50.228017+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/3b867044-14ae-4280-a7f3-b8057ff92a1d", "rel": "self"}, {"href": "http://localhost/allocations/3b867044-14ae-4280-a7f3-b8057ff92a1d", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_with_detail [0.053040s] ... 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-60d3f185-1da0-45c3-b9c9-25b9f81b1383
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"bios": [{"created_at": "2025-05-29T16:55:50.230489+00:00", "updated_at": null, "name": "virtualization", "value": "on", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach [0.093702s] ... 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-2deff5dc-5f5b-4977-9d9d-f607ac7b0be6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_detail_and_fields [0.054801s] ... 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-eeae7a82-fa38-40a3-b390-54e823d9d6d1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid detail: Unrecognized value 'True?fields=name,read_only', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_mismatch_owner [0.070614s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '107d5c03-e260-403e-b8f1-0a3403374cf2', 'owner': '54321'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b67d4dd7-952a-4b54-98f5-d9fb4f7024c4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields [0.044593s] ... 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-a1a52a0c-ddfb-4b92-960c-6906ef0e6289
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"bios": [{"created_at": "2025-05-29T16:55:50.330181+00:00", "updated_at": null, "name": "virtualization", "read_only": false, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok [0.199182s] ... 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-f47e2986-b89b-481a-8230-971c88d897e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:50.222526+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_allocation.TestPost.test_create_restricted_allocation_with_owner [0.091785s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '98079293-9bb8-43d1-b27f-c63e3ef3b804', 'owner': '12345'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/98079293-9bb8-43d1-b27f-c63e3ef3b804
Openstack-Request-Id: req-957b954d-2280-4ce5-b155-0945ec98cfc1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "98079293-9bb8-43d1-b27f-c63e3ef3b804", "created_at": "2025-05-29T16:55:50.390360+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/98079293-9bb8-43d1-b27f-c63e3ef3b804", "rel": "self"}, {"href": "http://localhost/allocations/98079293-9bb8-43d1-b27f-c63e3ef3b804", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/98079293-9bb8-43d1-b27f-c63e3ef3b804 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6881b710-ce60-4dc7-9440-cb8e29a27113
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "98079293-9bb8-43d1-b27f-c63e3ef3b804", "created_at": "2025-05-29T16:55:50.390360+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/98079293-9bb8-43d1-b27f-c63e3ef3b804", "rel": "self"}, {"href": "http://localhost/allocations/98079293-9bb8-43d1-b27f-c63e3ef3b804", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields_old_version [0.090135s] ... 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-ffe0cf8f-3c55-48f9-b464-4108d6692059
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.73
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?fields=['name', 'read_only'] received.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi [0.091214s] ... 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-6a160076-bd12-4911-859a-c07c58feb27d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:50.463751+00:00", "updated_at": "2025-05-29T16:55:50.485729+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-8bbffba7-14d7-4136-9411-1d255eac5b3d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:50.463751+00:00", "updated_at": "2025-05-29T16:55:50.485729+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "bar2"}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok [0.139442s] ... 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-05e2b119-c706-4e25-a0b6-0ac393e4efd8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:50.420344+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_chassis.TestPatch.test_add_root [0.067601s] ... 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-fb69c8b0-d5ed-46c0-af86-322815a4935f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:50.537681+00:00", "updated_at": "2025-05-29T16:55:50.556118+00:00", "description": "test", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios [0.120328s] ... 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-f50fcfbb-31a8-46cf-b454-ffc7a30f6f49
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"virtualization": {"created_at": "2025-05-29T16:55:50.503947+00:00", "updated_at": null, "name": "virtualization", "value": "on", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found [0.107232s] ... 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-0303ec5d-24ff-4a70-af1d-63312fede447
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a BIOS setting 'fake_setting'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_device_type [0.480788s] ... 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-dd85987e-0587-4ad0-ac81-03dcb4aad475
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'cat' is not one of ['disk', 'cdrom', 'floppy']\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version [0.080949s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_image_url [0.117020s] ... 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-dd7b0be0-45ff-48ee-ac6d-b8467559570b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unsupported or missing URL scheme: \", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent [0.336959s] ... 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-c50af277-30ee-43c5-bd67-6108eabe795e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: uuid, extra, description\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update [0.388679s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/2d7285c6-061f-42fc-b498-021af2460cdf WITH [{'path': '/description', 'value': 'foo', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b177d9c7-ecc0-4bdb-a90a-518cd6d0b303
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2d7285c6-061f-42fc-b498-021af2460cdf", "created_at": "2025-05-29T16:55:50.697220+00:00", "updated_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/2d7285c6-061f-42fc-b498-021af2460cdf", "rel": "self"}, {"href": "http://localhost/nodes/2d7285c6-061f-42fc-b498-021af2460cdf", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2d7285c6-061f-42fc-b498-021af2460cdf/ports", "rel": "self"}, {"href": "http://localhost/nodes/2d7285c6-061f-42fc-b498-021af2460cdf/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2d7285c6-061f-42fc-b498-021af2460cdf/states", "rel": "self"}, {"href": "http://localhost/nodes/2d7285c6-061f-42fc-b498-021af2460cdf/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2d7285c6-061f-42fc-b498-021af2460cdf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2d7285c6-061f-42fc-b498-021af2460cdf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2d7285c6-061f-42fc-b498-021af2460cdf/volume", "rel": "self"}, {"href": "http://localhost/nodes/2d7285c6-061f-42fc-b498-021af2460cdf/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_no_registry [0.132415s] ... 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-64024191-d92a-489a-910f-d112ecc5ab09
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.73
{"virtualization": {"created_at": "2025-05-29T16:55:50.885895+00:00", "updated_at": null, "name": "virtualization", "value": "on", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}}
{2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource [0.069043s] ... 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-1f3aed0a-df0c-4981-9d1d-fd962494ff08
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_missing_device_type [0.123683s] ... 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-6d68d1bc-0127-476d-954d-a0506d723988
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'device_type' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_get_all_firmware_components [0.137075s] ... 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-0aa9b8a7-f09e-4ef6-8581-ad5da5960a7b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.86
{"firmware": [{"created_at": "2025-05-29T16:55:51.031101+00:00", "updated_at": null, "component": "BIOS", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}, {"created_at": "2025-05-29T16:55:51.030041+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]}
{2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi [0.094828s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d6aad9ae-3428-4625-b9f2-b8cb22c64451
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b839e5d5-b43e-45fe-84bb-10f74a605b4f", "created_at": "2025-05-29T16:55:51.013492+00:00", "updated_at": "2025-05-29T16:55:51.029700+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f", "rel": "self"}, {"href": "http://localhost/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ae951787-b773-4d0c-82d7-c0b6bf2cf5ce
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b839e5d5-b43e-45fe-84bb-10f74a605b4f", "created_at": "2025-05-29T16:55:51.013492+00:00", "updated_at": "2025-05-29T16:55:51.029700+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f", "rel": "self"}, {"href": "http://localhost/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f/nodes", "rel": "bookmark"}]]}
PATCH /v1/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-23313891-39e5-4dc6-9413-bbf0ee8e57f6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b839e5d5-b43e-45fe-84bb-10f74a605b4f", "created_at": "2025-05-29T16:55:51.013492+00:00", "updated_at": "2025-05-29T16:55:51.055147+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f", "rel": "self"}, {"href": "http://localhost/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6a30ab37-c1f0-4c1c-9a8a-625d7b8162cf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b839e5d5-b43e-45fe-84bb-10f74a605b4f", "created_at": "2025-05-29T16:55:51.013492+00:00", "updated_at": "2025-05-29T16:55:51.055147+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f", "rel": "self"}, {"href": "http://localhost/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b839e5d5-b43e-45fe-84bb-10f74a605b4f/nodes", "rel": "bookmark"}]]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_missing_image_url [0.100097s] ... 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-905c5774-69e5-4328-8d29-18c8347c2c48
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'image_url' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail [0.056230s] ... 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-4a4b061a-ad4b-4500-9309-f8a90209b956
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra [0.263095s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/61540356-b5d5-4781-9f79-94fa0323851f WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a237dce9-fac6-4513-84de-ddc1b7b89f4d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "61540356-b5d5-4781-9f79-94fa0323851f", "created_at": "2025-05-29T16:55:51.011991+00:00", "updated_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/61540356-b5d5-4781-9f79-94fa0323851f", "rel": "self"}, {"href": "http://localhost/nodes/61540356-b5d5-4781-9f79-94fa0323851f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/61540356-b5d5-4781-9f79-94fa0323851f/ports", "rel": "self"}, {"href": "http://localhost/nodes/61540356-b5d5-4781-9f79-94fa0323851f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/61540356-b5d5-4781-9f79-94fa0323851f/states", "rel": "self"}, {"href": "http://localhost/nodes/61540356-b5d5-4781-9f79-94fa0323851f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/61540356-b5d5-4781-9f79-94fa0323851f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/61540356-b5d5-4781-9f79-94fa0323851f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/61540356-b5d5-4781-9f79-94fa0323851f/volume", "rel": "self"}, {"href": "http://localhost/nodes/61540356-b5d5-4781-9f79-94fa0323851f/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_wrong_version_get_all_firmware_components_old_version [0.116953s] ... 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.TestNodeVmedia.test_attach_required_only [0.123611s] ... 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-1a1299b6-b646-4da1-8580-7707b125bbe5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular [0.120214s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/chassis/a78a3c17-f1c9-4e35-bc92-6c10d59ddc06 WITH [{'path': '/description', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-98260dea-c388-48d2-99e9-174cf2d37fa1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "a78a3c17-f1c9-4e35-bc92-6c10d59ddc06", "created_at": "2025-05-29T16:55:51.189036+00:00", "updated_at": "2025-05-29T16:55:51.225583+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/a78a3c17-f1c9-4e35-bc92-6c10d59ddc06", "rel": "self"}, {"href": "http://localhost/chassis/a78a3c17-f1c9-4e35-bc92-6c10d59ddc06", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/a78a3c17-f1c9-4e35-bc92-6c10d59ddc06/nodes", "rel": "self"}, {"href": "http://localhost/chassis/a78a3c17-f1c9-4e35-bc92-6c10d59ddc06/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/a78a3c17-f1c9-4e35-bc92-6c10d59ddc06 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3db2ad07-8f80-4c83-8817-e8f02784fecd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "a78a3c17-f1c9-4e35-bc92-6c10d59ddc06", "created_at": "2025-05-29T16:55:51.189036+00:00", "updated_at": "2025-05-29T16:55:51.225583+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/a78a3c17-f1c9-4e35-bc92-6c10d59ddc06", "rel": "self"}, {"href": "http://localhost/chassis/a78a3c17-f1c9-4e35-bc92-6c10d59ddc06", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/a78a3c17-f1c9-4e35-bc92-6c10d59ddc06/nodes", "rel": "self"}, {"href": "http://localhost/chassis/a78a3c17-f1c9-4e35-bc92-6c10d59ddc06/nodes", "rel": "bookmark"}]]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_wrong_version [0.105428s] ... 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\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid [0.086630s] ... 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-40705462-c6cd-4dd4-8148-ab6c1e5f9862
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot overwrite UUID for an existing Chassis.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi [0.059941s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/chassis/e5b6f0b0-746b-496b-9e8b-efec0d9485fa WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e91bbb28-f508-43a1-957a-78a7cf539449
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e5b6f0b0-746b-496b-9e8b-efec0d9485fa", "created_at": "2025-05-29T16:55:51.375186+00:00", "updated_at": "2025-05-29T16:55:51.385857+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/e5b6f0b0-746b-496b-9e8b-efec0d9485fa", "rel": "self"}, {"href": "http://localhost/chassis/e5b6f0b0-746b-496b-9e8b-efec0d9485fa", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e5b6f0b0-746b-496b-9e8b-efec0d9485fa/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e5b6f0b0-746b-496b-9e8b-efec0d9485fa/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/e5b6f0b0-746b-496b-9e8b-efec0d9485fa WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-624c581f-a18b-4cc3-95e9-ea0981520b8e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e5b6f0b0-746b-496b-9e8b-efec0d9485fa", "created_at": "2025-05-29T16:55:51.375186+00:00", "updated_at": "2025-05-29T16:55:51.385857+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/e5b6f0b0-746b-496b-9e8b-efec0d9485fa", "rel": "self"}, {"href": "http://localhost/chassis/e5b6f0b0-746b-496b-9e8b-efec0d9485fa", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e5b6f0b0-746b-496b-9e8b-efec0d9485fa/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e5b6f0b0-746b-496b-9e8b-efec0d9485fa/nodes", "rel": "bookmark"}]]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_everything [0.119985s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia GOT Response: 204 No Content
Openstack-Request-Id: req-de49fdf2-237f-44c2-bca6-ec7097002689
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent [0.306292s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/eb69cc9e-ce37-483e-a834-f78f9077010d WITH [{'path': '/parent_node', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a452b89f-5514-4a24-a2f8-34db4362c161
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:51.286051+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_chassis.TestPatch.test_replace_singular [0.110424s] ... 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-15a8dfec-5636-413f-a382-a6ed88fa20dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:51.468837+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-bae64ee3-13a0-4039-96ee-c1e428fbaf4f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:55:51.468837+00:00", "updated_at": "2000-01-01T00:00:00+00:00", "description": "chassis-new-description", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_several_via_argument [0.108326s] ... 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-621be057-0754-46a8-a462-0f6abad7d524
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_fail_wrong_version [0.102951s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/e7faa3c8-733d-48d9-b416-8d3798744927 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-bba10ff0-9a1c-4c09-8b48-fe373d30aea5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_argument [0.052103s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia?device_types=cdrom GOT Response: 204 No Content
Openstack-Request-Id: req-fd92cf36-8c4d-4297-aa13-0c38963d4992
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error [0.113625s] ... 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-552f8dd5-77f6-4cda-a963-8fff5133e382
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_url [0.067901s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia/cdrom GOT Response: 204 No Content
Openstack-Request-Id: req-c5cf70e5-dbd4-45e4-b4e2-f8b897a81c94
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found [0.047857s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/chassis/58e51284-535c-40ec-94ed-c060981ed38c WITH [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5ea56850-de8f-46ff-a098-0b046333760e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 58e51284-535c-40ec-94ed-c060981ed38c could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_device_types [0.061209s] ... 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-a67dad63-5c13-43d3-b617-0123893f10fe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid device type(s) cat (valid are disk, cdrom, floppy)\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links [0.062346s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bfdf8a67-e16d-4892-a9e8-3d1650c7e14b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"conductors": [{"hostname": "bfd094b7-33bc-4ba5-9ea7-f719a75d8f26", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/bfd094b7-33bc-4ba5-9ea7-f719a75d8f26", "rel": "self"}, {"href": "http://localhost/conductors/bfd094b7-33bc-4ba5-9ea7-f719a75d8f26", "rel": "bookmark"}], "alive": true}, {"hostname": "411c44bb-c7d8-4ac0-b23d-3b2c4399afe7", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/411c44bb-c7d8-4ac0-b23d-3b2c4399afe7", "rel": "self"}, {"href": "http://localhost/conductors/411c44bb-c7d8-4ac0-b23d-3b2c4399afe7", "rel": "bookmark"}], "alive": true}, {"hostname": "ebc5412d-46d3-4303-8299-9cdd79db4d04", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/ebc5412d-46d3-4303-8299-9cdd79db4d04", "rel": "self"}, {"href": "http://localhost/conductors/ebc5412d-46d3-4303-8299-9cdd79db4d04", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=ebc5412d-46d3-4303-8299-9cdd79db4d04"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_not_uuid [0.169288s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/276957f7-8270-4e6b-99cd-efb9907b98fe WITH [{'path': '/parent_node', 'value': 'djarin', 'op': 'add'}] GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-d4d03f0f-971e-4d78-89a5-29855e629c97
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"(sqlite3.InterfaceError) Error binding parameter 0 - probably unsupported type.\\n[SQL: SELECT allocations.id AS allocations_id, allocations.uuid AS allocations_uuid, allocations.name AS allocations_name, allocations.node_id AS allocations_node_id, allocations.state AS allocations_state, allocations.owner AS allocations_owner, allocations.last_error AS allocations_last_error, allocations.resource_class AS allocations_resource_class, allocations.traits AS allocations_traits, allocations.candidate_nodes AS allocations_candidate_nodes, allocations.extra AS allocations_extra, allocations.conductor_affinity AS allocations_conductor_affinity, allocations.version AS allocations_version, allocations.created_at AS allocations_created_at, allocations.updated_at AS allocations_updated_at \\nFROM allocations \\nWHERE allocations.id = ?]\\n[parameters: (<MagicMock name='update_node().allocation_id' id='140525514337968'>,)]\\n(Background on this error at: https://sqlalche.me/e/20/rvf5)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra_and_instance_info [0.598341s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ffeec680-dea0-43ea-9c2f-a61fa109e4e6 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-738178c6-4427-42a9-99a6-c5226f2d48ed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "ffeec680-dea0-43ea-9c2f-a61fa109e4e6", "created_at": "2025-05-29T16:55:51.370062+00:00", "updated_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/ffeec680-dea0-43ea-9c2f-a61fa109e4e6", "rel": "self"}, {"href": "http://localhost/nodes/ffeec680-dea0-43ea-9c2f-a61fa109e4e6", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ffeec680-dea0-43ea-9c2f-a61fa109e4e6/ports", "rel": "self"}, {"href": "http://localhost/nodes/ffeec680-dea0-43ea-9c2f-a61fa109e4e6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ffeec680-dea0-43ea-9c2f-a61fa109e4e6/states", "rel": "self"}, {"href": "http://localhost/nodes/ffeec680-dea0-43ea-9c2f-a61fa109e4e6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ffeec680-dea0-43ea-9c2f-a61fa109e4e6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ffeec680-dea0-43ea-9c2f-a61fa109e4e6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ffeec680-dea0-43ea-9c2f-a61fa109e4e6/volume", "rel": "self"}, {"href": "http://localhost/nodes/ffeec680-dea0-43ea-9c2f-a61fa109e4e6/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_version [0.073053s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields [0.077645s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b827e6ed-e7a1-4904-8c6f-be9c2c05b3fa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"conductors": [{"hostname": "d4e46bb9-00ea-4ce0-848f-4bca05fea4cf", "links": [{"href": "http://localhost/v1/conductors/d4e46bb9-00ea-4ce0-848f-4bca05fea4cf", "rel": "self"}, {"href": "http://localhost/conductors/d4e46bb9-00ea-4ce0-848f-4bca05fea4cf", "rel": "bookmark"}], "alive": true}, {"hostname": "4af9fec8-8239-4ab2-b071-8b470b272512", "links": [{"href": "http://localhost/v1/conductors/4af9fec8-8239-4ab2-b071-8b470b272512", "rel": "self"}, {"href": "http://localhost/conductors/4af9fec8-8239-4ab2-b071-8b470b272512", "rel": "bookmark"}], "alive": true}, {"hostname": "4a2a4ff8-ffa7-4f21-96f1-3de1e12f8796", "links": [{"href": "http://localhost/v1/conductors/4a2a4ff8-ffa7-4f21-96f1-3de1e12f8796", "rel": "self"}, {"href": "http://localhost/conductors/4a2a4ff8-ffa7-4f21-96f1-3de1e12f8796", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=4a2a4ff8-ffa7-4f21-96f1-3de1e12f8796"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_get [0.060398s] ... 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-92d856be-28f0-4221-9271-1b35a44719be
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
[{"media_types": ["CD", "DVD"], "inserted": "false", "image": ""}, {"media_types": ["Floppy", "USBStick"], "inserted": "false", "image": ""}]
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit [0.048975s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b2a68ca2-5669-4cd6-8831-6eb1aa30a522
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"conductors": [{"hostname": "9a73b6dd-c06d-408b-a77d-abaa96afefac", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/9a73b6dd-c06d-408b-a77d-abaa96afefac", "rel": "self"}, {"href": "http://localhost/conductors/9a73b6dd-c06d-408b-a77d-abaa96afefac", "rel": "bookmark"}], "alive": true}, {"hostname": "26871504-c891-4750-8cd9-1a889d7626d9", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/26871504-c891-4750-8cd9-1a889d7626d9", "rel": "self"}, {"href": "http://localhost/conductors/26871504-c891-4750-8cd9-1a889d7626d9", "rel": "bookmark"}], "alive": true}, {"hostname": "e6f8ca4c-791b-4c58-aceb-08a947402bb5", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/e6f8ca4c-791b-4c58-aceb-08a947402bb5", "rel": "self"}, {"href": "http://localhost/conductors/e6f8ca4c-791b-4c58-aceb-08a947402bb5", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=e6f8ca4c-791b-4c58-aceb-08a947402bb5"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_extra [0.141724s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/782817db-527b-4ab5-8b8c-4dddea9b6263 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-e78ffd71-8b63-4863-ae8e-ac66ed8b315a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "782817db-527b-4ab5-8b8c-4dddea9b6263", "created_at": "2025-05-29T16:55:51.848644+00:00", "updated_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/782817db-527b-4ab5-8b8c-4dddea9b6263", "rel": "self"}, {"href": "http://localhost/nodes/782817db-527b-4ab5-8b8c-4dddea9b6263", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/782817db-527b-4ab5-8b8c-4dddea9b6263/ports", "rel": "self"}, {"href": "http://localhost/nodes/782817db-527b-4ab5-8b8c-4dddea9b6263/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/782817db-527b-4ab5-8b8c-4dddea9b6263/states", "rel": "self"}, {"href": "http://localhost/nodes/782817db-527b-4ab5-8b8c-4dddea9b6263/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/782817db-527b-4ab5-8b8c-4dddea9b6263/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/782817db-527b-4ab5-8b8c-4dddea9b6263/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/782817db-527b-4ab5-8b8c-4dddea9b6263/volume", "rel": "self"}, {"href": "http://localhost/nodes/782817db-527b-4ab5-8b8c-4dddea9b6263/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_get_wrong_version [0.067010s] ... 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-b4bd8ebc-d98e-49f7-a887-05d283dc10ca
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.92
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty [0.061211s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-76217a3b-4f79-4d00-8c80-bb6ca6a0a333
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"conductors": []}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_remove_parent [0.199274s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/faa7c78c-ba12-4e5f-9246-bc68fd01ec2c WITH [{'path': '/parent_node', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6fead917-4e63-412b-aac7-b5a386a43de1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:51.823484+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "djarin", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification [0.025364s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields [0.035601s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e9ebf0d7-3853-4fa1-8ea6-fa9ef27dc055
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"conductors": [{"hostname": "rocky.rocks", "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true}, {"hostname": "stein.rocks", "links": [{"href": "http://localhost/v1/conductors/stein.rocks", "rel": "self"}, {"href": "http://localhost/conductors/stein.rocks", "rel": "bookmark"}], "alive": true}]}
{3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params [0.044063s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields [0.031389s] ... 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-85cde886-0cde-41d4-b87c-ca3b6dec0cd0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification [0.038931s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one [0.059962s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d66d3e8e-16c3-493c-8c3f-0a8e4744143f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:55:52.072993+00:00", "updated_at": "2025-05-29T16:55:52.072755+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.TestNodeShardPatch.test_node_add_shard [0.144049s] ... 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-7cad8a53-c338-46fd-a08b-75161416b546
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:52.028031+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node-57.1", "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_instance_info [0.179291s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/fa60f807-98f7-4b60-8672-8cbdbd6e810f 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-45f094f2-332c-4851-a7e6-d1ff04090d82
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "fa60f807-98f7-4b60-8672-8cbdbd6e810f", "created_at": "2025-05-29T16:55:52.030465+00:00", "updated_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/fa60f807-98f7-4b60-8672-8cbdbd6e810f", "rel": "self"}, {"href": "http://localhost/nodes/fa60f807-98f7-4b60-8672-8cbdbd6e810f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fa60f807-98f7-4b60-8672-8cbdbd6e810f/ports", "rel": "self"}, {"href": "http://localhost/nodes/fa60f807-98f7-4b60-8672-8cbdbd6e810f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fa60f807-98f7-4b60-8672-8cbdbd6e810f/states", "rel": "self"}, {"href": "http://localhost/nodes/fa60f807-98f7-4b60-8672-8cbdbd6e810f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fa60f807-98f7-4b60-8672-8cbdbd6e810f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fa60f807-98f7-4b60-8672-8cbdbd6e810f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fa60f807-98f7-4b60-8672-8cbdbd6e810f/volume", "rel": "self"}, {"href": "http://localhost/nodes/fa60f807-98f7-4b60-8672-8cbdbd6e810f/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification [0.061302s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline_old_heartbeat [0.041271s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-32943006-286c-4d61-817f-89601452ebde
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2000-01-01T00:00:00+00:00", "updated_at": "2000-01-01T00:00:00+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": false}
{3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification [0.048391s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard_fail_wrong_version [0.070857s] ... 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-5c656b48-589c-49fa-b68e-02fe49da6a38
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline_unregistered [0.055468s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9284aa82-1b4f-4dbc-818c-1157de060bc5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:55:52.165169+00:00", "updated_at": "2025-05-29T16:55:52.168531+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_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets [0.043925s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification [0.025345s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields [0.054235s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks?fields=hostname,alive WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6977ac26-76db-4bcd-8f51-961e24359406
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"hostname": "rocky.rocks", "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_extra_instance_info [0.156233s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/c1b3da85-4c3f-4642-bca5-0b0865da061e 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-0e7a5c91-2257-4c41-8b69-9d34e9e8a908
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "c1b3da85-4c3f-4642-bca5-0b0865da061e", "created_at": "2025-05-29T16:55:52.164332+00:00", "updated_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/c1b3da85-4c3f-4642-bca5-0b0865da061e", "rel": "self"}, {"href": "http://localhost/nodes/c1b3da85-4c3f-4642-bca5-0b0865da061e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c1b3da85-4c3f-4642-bca5-0b0865da061e/ports", "rel": "self"}, {"href": "http://localhost/nodes/c1b3da85-4c3f-4642-bca5-0b0865da061e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c1b3da85-4c3f-4642-bca5-0b0865da061e/states", "rel": "self"}, {"href": "http://localhost/nodes/c1b3da85-4c3f-4642-bca5-0b0865da061e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c1b3da85-4c3f-4642-bca5-0b0865da061e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c1b3da85-4c3f-4642-bca5-0b0865da061e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c1b3da85-4c3f-4642-bca5-0b0865da061e/volume", "rel": "self"}, {"href": "http://localhost/nodes/c1b3da85-4c3f-4642-bca5-0b0865da061e/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification [0.045885s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_invalid_api [0.039815s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8c52e56f-f4df-45e5-8c9a-da22679c31ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_port_and_v6 [0.116623s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/[::1]:8090 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4ef650e3-a0b8-4beb-b240-969ce4869f27
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:55:52.369031+00:00", "updated_at": "2025-05-29T16:55:52.368769+00:00", "hostname": "[::1]:8090", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/[::1]:8090", "rel": "self"}, {"href": "http://localhost/conductors/[::1]:8090", "rel": "bookmark"}], "alive": true}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress [0.133951s] ... 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-6ec71b7f-0de2-4c61-b466-decf89a63cde
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_uuid: 52:54:00:cf:2d:31\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanhold [0.286517s] ... 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-f11ddbe4-de4d-4e54-8b9d-1dbc6574f162
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.85
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links [0.101692s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5ad8b3e2-e6ed-42fc-8666-9c0ef8c03517
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:55:52.466573+00:00", "updated_at": "2025-05-29T16:55:52.466075+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-8d573379-9f5b-4f98-9cac-63741fcc0387
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:55:52.466573+00:00", "updated_at": "2025-05-29T16:55:52.466075+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-217f5c00-4a6e-4ef0-8ae8-e42c7b2e65f2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:55:52.466573+00:00", "updated_at": "2025-05-29T16:55:52.466075+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_instance_info [0.244731s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/b5b15902-c8c1-4dcf-bb7e-d055d804a46c WITH [{'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c65b7ac8-ae09-46f9-b7ba-b2ff55a23c93
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "b5b15902-c8c1-4dcf-bb7e-d055d804a46c", "created_at": "2025-05-29T16:55:52.397701+00:00", "updated_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/b5b15902-c8c1-4dcf-bb7e-d055d804a46c", "rel": "self"}, {"href": "http://localhost/nodes/b5b15902-c8c1-4dcf-bb7e-d055d804a46c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b5b15902-c8c1-4dcf-bb7e-d055d804a46c/ports", "rel": "self"}, {"href": "http://localhost/nodes/b5b15902-c8c1-4dcf-bb7e-d055d804a46c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b5b15902-c8c1-4dcf-bb7e-d055d804a46c/states", "rel": "self"}, {"href": "http://localhost/nodes/b5b15902-c8c1-4dcf-bb7e-d055d804a46c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b5b15902-c8c1-4dcf-bb7e-d055d804a46c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b5b15902-c8c1-4dcf-bb7e-d055d804a46c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b5b15902-c8c1-4dcf-bb7e-d055d804a46c/volume", "rel": "self"}, {"href": "http://localhost/nodes/b5b15902-c8c1-4dcf-bb7e-d055d804a46c/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid [0.111210s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content
Openstack-Request-Id: req-ad2d1568-5213-4ba0-ac96-8eef89998262
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait [0.093201s] ... 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-984530bb-fdcd-4b05-9397-daa7fc446bde
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.13
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_deployhold [0.058236s] ... 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-1bee4632-8b69-48a3-9b67-051b81c7b715
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.85
{3} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked [0.117530s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-35915d64-d050-4bd5-97ca-db03150aa638
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url [0.145693s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2225f877-e56d-4552-a5f4-3081e79741df
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:55:52.610916+00:00", "updated_at": "2025-05-29T16:55:52.610680+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-56b22400-9981-487d-8262-5a1d2c34adb4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:55:52.610916+00:00", "updated_at": "2025-05-29T16:55:52.610680+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-3de6900f-36d5-4802-894c-d269a286da25
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:55:52.610916+00:00", "updated_at": "2025-05-29T16:55:52.610680+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://foo/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://foo/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_none [0.163598s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/f68a168a-7d56-46ab-a107-2c077c212bd0 WITH [] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f91e19c2-99d0-420b-909c-30f5a74cb3d8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "f68a168a-7d56-46ab-a107-2c077c212bd0", "created_at": "2025-05-29T16:55:52.628652+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/f68a168a-7d56-46ab-a107-2c077c212bd0", "rel": "self"}, {"href": "http://localhost/nodes/f68a168a-7d56-46ab-a107-2c077c212bd0", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f68a168a-7d56-46ab-a107-2c077c212bd0/ports", "rel": "self"}, {"href": "http://localhost/nodes/f68a168a-7d56-46ab-a107-2c077c212bd0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f68a168a-7d56-46ab-a107-2c077c212bd0/states", "rel": "self"}, {"href": "http://localhost/nodes/f68a168a-7d56-46ab-a107-2c077c212bd0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f68a168a-7d56-46ab-a107-2c077c212bd0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f68a168a-7d56-46ab-a107-2c077c212bd0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f68a168a-7d56-46ab-a107-2c077c212bd0/volume", "rel": "self"}, {"href": "http://localhost/nodes/f68a168a-7d56-46ab-a107-2c077c212bd0/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state [0.078352s] ... 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-846e9d4b-77cc-45c3-a6cd-c99db40b7d88
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.13
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"abort\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource [0.087800s] ... 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-9a0139d7-3da4-4ede-9964-63b250cb77f1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete [0.138126s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/7c654e1d-3daa-480a-81bb-60374e9188ce GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c31d5495-a5a7-4d10-934a-8943b9e540e6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list [0.113126s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e2921869-c20c-4fef-89c1-bc62593b03c3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"conductors": [{"hostname": "why care", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/why care", "rel": "self"}, {"href": "http://localhost/conductors/why care", "rel": "bookmark"}], "alive": true}, {"hostname": "why not", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/why not", "rel": "self"}, {"href": "http://localhost/conductors/why not", "rel": "bookmark"}], "alive": true}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails [0.096142s] ... 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-beef137f-826f-42c0-8b14-3a9a103aa957
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.17
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"adopt\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail [0.098129s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?detail=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ef9f94ea-3a93-451d-9084-2fb0e03ecc0c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"conductors": [{"created_at": "2025-05-29T16:55:52.867115+00:00", "updated_at": "2025-05-29T16:55:52.866881+00:00", "hostname": "why care", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/why care", "rel": "self"}, {"href": "http://localhost/conductors/why care", "rel": "bookmark"}], "alive": true}, {"created_at": "2025-05-29T16:55:52.868526+00:00", "updated_at": "2025-05-29T16:55:52.868366+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}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource [0.116209s] ... 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-7017aa8f-a968-41d2-80a5-590bd4d2ca43
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail [0.095597s] ... 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-1ccfc112-6516-4bd3-9ae6-c55d1b7cbb08
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.17
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links [0.155908s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-57be33df-ce39-4d35-976f-e936156703d0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "e10a3ad0-1598-4bdd-877c-1230aa25c330", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/e10a3ad0-1598-4bdd-877c-1230aa25c330", "rel": "self"}, {"href": "http://localhost/ports/e10a3ad0-1598-4bdd-877c-1230aa25c330", "rel": "bookmark"}]}, {"uuid": "626e4466-5a26-4ea6-87fa-797679648e81", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/626e4466-5a26-4ea6-87fa-797679648e81", "rel": "self"}, {"href": "http://localhost/ports/626e4466-5a26-4ea6-87fa-797679648e81", "rel": "bookmark"}]}, {"uuid": "7c35035b-aec1-46b4-b4ca-b5014bcc0349", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/7c35035b-aec1-46b4-b4ca-b5014bcc0349", "rel": "self"}, {"href": "http://localhost/ports/7c35035b-aec1-46b4-b4ca-b5014bcc0349", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=7c35035b-aec1-46b4-b4ca-b5014bcc0349"}
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api [0.060978s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d6b02ad2-aa4f-4d5e-bd81-a3d28d9eb7ca
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage [0.048746s] ... 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-f8fb3135-3ce9-4dfe-9f30-6c09f785d2c1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.17
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id [0.121470s] ... 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-323dd7ca-7ebd-492a-a23a-cf272c32c4a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: port_ident\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 [0.063727s] ... 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-4f5ba84d-9cb0-4095-9342-ea3b031d3514
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.16
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key [0.060652s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?sort_key=hostname WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-909f78b9-6006-401d-a755-5efa8fcbc59a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"conductors": [{"hostname": "0afb963e-9f60-4289-9af7-ed1abb12d9a7", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/0afb963e-9f60-4289-9af7-ed1abb12d9a7", "rel": "self"}, {"href": "http://localhost/conductors/0afb963e-9f60-4289-9af7-ed1abb12d9a7", "rel": "bookmark"}], "alive": true}, {"hostname": "8743d377-f162-4f16-bc66-47846378a010", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/8743d377-f162-4f16-bc66-47846378a010", "rel": "self"}, {"href": "http://localhost/conductors/8743d377-f162-4f16-bc66-47846378a010", "rel": "bookmark"}], "alive": true}, {"hostname": "97367f89-bff5-4d7a-9e31-7d78e6724dc3", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/97367f89-bff5-4d7a-9e31-7d78e6724dc3", "rel": "self"}, {"href": "http://localhost/conductors/97367f89-bff5-4d7a-9e31-7d78e6724dc3", "rel": "bookmark"}], "alive": true}, {"hostname": "a7e1817e-4949-4d5a-957c-138ee8b58ecf", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/a7e1817e-4949-4d5a-957c-138ee8b58ecf", "rel": "self"}, {"href": "http://localhost/conductors/a7e1817e-4949-4d5a-957c-138ee8b58ecf", "rel": "bookmark"}], "alive": true}, {"hostname": "d7b9c322-50e7-438a-83a7-a0c2b8a47bbc", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/d7b9c322-50e7-438a-83a7-a0c2b8a47bbc", "rel": "self"}, {"href": "http://localhost/conductors/d7b9c322-50e7-438a-83a7-a0c2b8a47bbc", "rel": "bookmark"}], "alive": true}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_custom_fields [0.111675s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?fields=address,uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-533893e8-1b37-435d-98eb-4fa35fd0e179
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "5e854bba-d534-428c-af29-a2ae02b10e0a", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/5e854bba-d534-428c-af29-a2ae02b10e0a", "rel": "self"}, {"href": "http://localhost/ports/5e854bba-d534-428c-af29-a2ae02b10e0a", "rel": "bookmark"}]}, {"uuid": "c240a24c-e9f9-46cf-bdbc-c9b800a5d6fc", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/c240a24c-e9f9-46cf-bdbc-c9b800a5d6fc", "rel": "self"}, {"href": "http://localhost/ports/c240a24c-e9f9-46cf-bdbc-c9b800a5d6fc", "rel": "bookmark"}]}, {"uuid": "59034eab-31e0-421c-9900-60d81a2cae9b", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/59034eab-31e0-421c-9900-60d81a2cae9b", "rel": "self"}, {"href": "http://localhost/ports/59034eab-31e0-421c-9900-60d81a2cae9b", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=59034eab-31e0-421c-9900-60d81a2cae9b"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state [0.123856s] ... 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-c79f5414-8ba5-40ed-ae4b-fec7eaea0a5a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rebuild'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-696bd927-fc2d-40a9-8438-52a89e75c468
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deleted'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6d6605b2-2f7d-460f-8890-3900b88e4152
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit [0.118529s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-15c44b4a-7b10-43fe-90bb-1d5bc0f2eaf4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "36f9ae25-462b-492a-b7ac-c0266f842a56", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/36f9ae25-462b-492a-b7ac-c0266f842a56", "rel": "self"}, {"href": "http://localhost/ports/36f9ae25-462b-492a-b7ac-c0266f842a56", "rel": "bookmark"}]}, {"uuid": "4e00a3ae-ee6d-4dbd-884c-371813257f89", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/4e00a3ae-ee6d-4dbd-884c-371813257f89", "rel": "self"}, {"href": "http://localhost/ports/4e00a3ae-ee6d-4dbd-884c-371813257f89", "rel": "bookmark"}]}, {"uuid": "aa4da843-2daf-4829-8d80-5c6a690b3c91", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/aa4da843-2daf-4829-8d80-5c6a690b3c91", "rel": "self"}, {"href": "http://localhost/ports/aa4da843-2daf-4829-8d80-5c6a690b3c91", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=aa4da843-2daf-4829-8d80-5c6a690b3c91"}
{2} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid [0.130718s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?sort_key=alive WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3215dc7a-491f-412f-975a-a7cc61dd6d3f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value alive is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/conductors?sort_key=drivers WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b361d281-636e-4cce-a24a-f9e5a225d6b1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value drivers is an invalid field for sorting\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled [0.199157s] ... 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-ad55d733-c2a8-4449-8ed8-b7251d54d9a3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 can not update the driver while the console is enabled. Please stop the console first.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail [0.101609s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-13394efa-bd00-4d78-86a1-d416c5b4ea18
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:53.243042+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": true, "local_link_connection": {"switch_info": "switch", "switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Gig0/1"}, "physical_network": "physnet1", "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state [0.133449s] ... 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-6f24eb0d-e1b4-42db-b2c2-8a31a50df259
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rebuild'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5a1ed4bf-103c-42b6-bae5-d70e1367e61c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deleted'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-12731446-2093-454c-bba5-838efbda20d3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links [0.143247s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aa097c0b-bb5d-43c7-b830-de056f5d72c8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "bff59620-1913-4347-bcec-c3941879565d", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/bff59620-1913-4347-bcec-c3941879565d", "rel": "self"}, {"href": "http://localhost/deploy_templates/bff59620-1913-4347-bcec-c3941879565d", "rel": "bookmark"}]}, {"uuid": "affa7c8e-8d7a-487d-8d21-64211f53488e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/affa7c8e-8d7a-487d-8d21-64211f53488e", "rel": "self"}, {"href": "http://localhost/deploy_templates/affa7c8e-8d7a-487d-8d21-64211f53488e", "rel": "bookmark"}]}, {"uuid": "68875148-b9fe-4e3f-b108-548884d3ef10", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/68875148-b9fe-4e3f-b108-548884d3ef10", "rel": "self"}, {"href": "http://localhost/deploy_templates/68875148-b9fe-4e3f-b108-548884d3ef10", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=68875148-b9fe-4e3f-b108-548884d3ef10"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid [0.146086s] ... 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-67c28e5b-2de7-40ca-8e2d-804124f51d04
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Windows ME'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single [0.122022s] ... 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-9e1bf6af-d048-4ede-b903-8970f6a27dcc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields [0.101425s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cc911806-705a-4570-8cb9-939413036d88
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "dab660c8-6b66-4c46-be66-5fa45b64af8e", "links": [{"href": "http://localhost/v1/deploy_templates/dab660c8-6b66-4c46-be66-5fa45b64af8e", "rel": "self"}, {"href": "http://localhost/deploy_templates/dab660c8-6b66-4c46-be66-5fa45b64af8e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "c4e35a3b-89a2-410a-b809-41e1f637ca6f", "links": [{"href": "http://localhost/v1/deploy_templates/c4e35a3b-89a2-410a-b809-41e1f637ca6f", "rel": "self"}, {"href": "http://localhost/deploy_templates/c4e35a3b-89a2-410a-b809-41e1f637ca6f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "59a0ba45-bc57-425e-989d-ae890bce5922", "links": [{"href": "http://localhost/v1/deploy_templates/59a0ba45-bc57-425e-989d-ae890bce5922", "rel": "self"}, {"href": "http://localhost/deploy_templates/59a0ba45-bc57-425e-989d-ae890bce5922", "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=59a0ba45-bc57-425e-989d-ae890bce5922"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid [0.076469s] ... 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-450b1ffa-e034-4a71-90ea-5f3f212b36cb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state [0.159450s] ... 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-8a4281de-018a-4055-92ad-aabff804ac94
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c9d9a08c-815b-4d5b-878a-ba9f01e569a1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-2f6f3bfa-1d28-4d0a-bf3d-b401d8555c9e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported [0.105485s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail?node=test-node WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-09827572-7906-453b-8258-88e7b6001842
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit [0.138339s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3dcd82f3-ef55-4f0e-b1bd-c2f8359e6c97
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "c301f5a9-514e-4df1-aebb-d9ccf234f64a", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/c301f5a9-514e-4df1-aebb-d9ccf234f64a", "rel": "self"}, {"href": "http://localhost/deploy_templates/c301f5a9-514e-4df1-aebb-d9ccf234f64a", "rel": "bookmark"}]}, {"uuid": "7ba347b9-4c3c-43cd-8fa2-a281bb50db98", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/7ba347b9-4c3c-43cd-8fa2-a281bb50db98", "rel": "self"}, {"href": "http://localhost/deploy_templates/7ba347b9-4c3c-43cd-8fa2-a281bb50db98", "rel": "bookmark"}]}, {"uuid": "23edcae8-a04a-4e37-a046-f94171e97ef3", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/23edcae8-a04a-4e37-a046-f94171e97ef3", "rel": "self"}, {"href": "http://localhost/deploy_templates/23edcae8-a04a-4e37-a046-f94171e97ef3", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=23edcae8-a04a-4e37-a046-f94171e97ef3"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource [0.121958s] ... 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-bf389b2a-c24b-48cc-af56-7d3e75dc55e1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_older_soft_ver [0.140878s] ... 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-21f88c23-f0f0-4b0a-8cd8-3d3d566055a5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query [0.091982s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-00a0036c-ebd3-4fb3-b5d3-96451e2414a6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "d5334b2a-16a6-4db6-836e-56028fd9b326", "created_at": "2025-05-29T16:55:53.639248+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d5334b2a-16a6-4db6-836e-56028fd9b326", "rel": "self"}, {"href": "http://localhost/deploy_templates/d5334b2a-16a6-4db6-836e-56028fd9b326", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id [0.080096s] ... 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-7dbb2a07-2657-4238-af8c-fb6d0f866a93
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok [0.174410s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-87123236-b93d-456f-9e8e-8c28ffb26aaf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:53.617408+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_valid_soft_ver [0.132049s] ... 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-415b5585-a3aa-4e7a-a626-ca350d4acd3b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource [0.091536s] ... 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-a030be0a-65d4-4077-be04-22829235c437
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false [0.186659s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-af669c06-077a-4faa-be87-a652df11f4b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "e3af5c46-95fd-4669-8cfd-b1496d5dd982", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/e3af5c46-95fd-4669-8cfd-b1496d5dd982", "rel": "self"}, {"href": "http://localhost/deploy_templates/e3af5c46-95fd-4669-8cfd-b1496d5dd982", "rel": "bookmark"}]}]}
GET /v1/deploy_templates?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b364b30d-4568-4b46-afdd-86d1df99a34d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "e3af5c46-95fd-4669-8cfd-b1496d5dd982", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/e3af5c46-95fd-4669-8cfd-b1496d5dd982", "rel": "self"}, {"href": "http://localhost/deploy_templates/e3af5c46-95fd-4669-8cfd-b1496d5dd982", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id [0.101318s] ... 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-32199b3a-d5c5-4699-b390-31733605d969
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /chassis_id. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query [0.177168s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c793d650-2ed7-4772-b4d3-f37e70bd8bf6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:53.801840+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_info": "switch", "switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Gig0/1"}, "physical_network": "physnet1", "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed [0.049630s] ... 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-c78b31a1-a618-4459-b890-23a03ec91019
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "778330ac-f594-4034-a601-fd8845ce8562", "created_at": "2025-05-29T16:55:53.894721+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/778330ac-f594-4034-a601-fd8845ce8562", "rel": "self"}, {"href": "http://localhost/deploy_templates/778330ac-f594-4034-a601-fd8845ce8562", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "ba28e9c4-09da-4e30-8e64-b2b851bb4e16", "created_at": "2025-05-29T16:55:53.893412+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ba28e9c4-09da-4e30-8e64-b2b851bb4e16", "rel": "self"}, {"href": "http://localhost/deploy_templates/ba28e9c4-09da-4e30-8e64-b2b851bb4e16", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "5c9dff24-ed38-45b9-9dad-cb7c7b1cd6ae", "created_at": "2025-05-29T16:55:53.891371+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/5c9dff24-ed38-45b9-9dad-cb7c7b1cd6ae", "rel": "self"}, {"href": "http://localhost/deploy_templates/5c9dff24-ed38-45b9-9dad-cb7c7b1cd6ae", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_invalid_request [0.157771s] ... 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-e032856a-345d-4a8c-a23f-bea5f9c70ac3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid boot mode unsupported-efi requested for node. Allowed boot modes are: bios, uefi\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields [0.035035s] ... 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-c137684a-0d07-4da5-8225-e1c27e9bc9ea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver [0.054235s] ... 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-68fad97f-1cf8-452a-9bd7-a07d936d1e1f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields [0.048859s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?detail=False&fields=steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7fbed673-8651-4809-b1a3-0d85c54c84a1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"links": [{"href": "http://localhost/v1/deploy_templates/4e174d9d-a3e5-4901-aefc-013676d671d3", "rel": "self"}, {"href": "http://localhost/deploy_templates/4e174d9d-a3e5-4901-aefc-013676d671d3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_valid_soft_ver [0.070567s] ... 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-4618632f-9a78-4109-8546-a71a67d2d08d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid [0.201485s] ... 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-75b94745-4902-4d05-906b-7e47ef95a362
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:53.909842+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty [0.072618s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2a5ea2ef-f1b8-4006-8d7a-4f6f94f1e39b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": []}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version [0.035435s] ... 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\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false [0.274166s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a3ef43a5-0f38-49ff-81d1-ddd9098324a0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
GET /v1/ports?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0a2c8205-adb5-448e-8350-a1c4a6c88ff8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields [0.056543s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3a871b77-2a23-4ba1-a1ae-6cab863cb10e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "dddb66ae-90e2-4628-b63d-0f7e6b689470", "links": [{"href": "http://localhost/v1/deploy_templates/dddb66ae-90e2-4628-b63d-0f7e6b689470", "rel": "self"}, {"href": "http://localhost/deploy_templates/dddb66ae-90e2-4628-b63d-0f7e6b689470", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "ff9f59c1-c5b0-481d-9024-ca10dbe4ba25", "links": [{"href": "http://localhost/v1/deploy_templates/ff9f59c1-c5b0-481d-9024-ca10dbe4ba25", "rel": "self"}, {"href": "http://localhost/deploy_templates/ff9f59c1-c5b0-481d-9024-ca10dbe4ba25", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "07fb5d13-3cb0-45b9-a5b7-c4a773fb847b", "links": [{"href": "http://localhost/v1/deploy_templates/07fb5d13-3cb0-45b9-a5b7-c4a773fb847b", "rel": "self"}, {"href": "http://localhost/deploy_templates/07fb5d13-3cb0-45b9-a5b7-c4a773fb847b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean [0.089876s] ... 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-dc3b32f7-5031-45e1-8427-163aa769dc95
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid [0.048408s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?fields=name&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9d3fe96b-85de-43ef-91d0-94e89533810d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/2506a06d-1bee-4a59-9f01-83f97f799485", "rel": "self"}, {"href": "http://localhost/deploy_templates/2506a06d-1bee-4a59-9f01-83f97f799485", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/f065753f-dbbe-4f42-a56f-9f12df893ba7", "rel": "self"}, {"href": "http://localhost/deploy_templates/f065753f-dbbe-4f42-a56f-9f12df893ba7", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=f065753f-dbbe-4f42-a56f-9f12df893ba7"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version [0.158833s] ... 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-46784129-d317-4d36-a8cb-e13834d28118
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed [0.107447s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail?sort_key=pxe_enabled WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bd71b0dd-0bfc-4317-8c1f-405c31420eb1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "c11cf50f-9794-4bcf-93a6-b85c38a52981", "created_at": "2025-05-29T16:55:54.218697+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/c11cf50f-9794-4bcf-93a6-b85c38a52981", "rel": "self"}, {"href": "http://localhost/ports/c11cf50f-9794-4bcf-93a6-b85c38a52981", "rel": "bookmark"}], "portgroup_uuid": null}, {"uuid": "1cbdb394-eeb5-4bd9-8a0f-6eacc238faa1", "created_at": "2025-05-29T16:55:54.224119+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/1cbdb394-eeb5-4bd9-8a0f-6eacc238faa1", "rel": "self"}, {"href": "http://localhost/ports/1cbdb394-eeb5-4bd9-8a0f-6eacc238faa1", "rel": "bookmark"}], "portgroup_uuid": null}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields [0.048774s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/1cbca292-cb89-4be4-b7ee-b2405a629d77?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-117da8b0-580b-4fe0-8b8a-24229a4c4bbc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail [0.135466s] ... 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-af0aed35-ced1-4b11-9172-e803e7b3314d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"bad\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one [0.052829s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/c1b40252-42d4-4ab3-b31d-fcb8134cefcb WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-01144751-80ac-4c4d-92f1-4d3245fb35a1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "c1b40252-42d4-4ab3-b31d-fcb8134cefcb", "created_at": "2025-05-29T16:55:54.305053+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c1b40252-42d4-4ab3-b31d-fcb8134cefcb", "rel": "self"}, {"href": "http://localhost/deploy_templates/c1b40252-42d4-4ab3-b31d-fcb8134cefcb", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field [0.117956s] ... 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-9809fcff-4bd2-421d-8bc3-3d300d0e5f28
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /last_error. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed [0.093607s] ... 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-7cc6b62b-0223-470a-be2c-fc1dc870c9cd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields [0.088983s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/5a0724e9-d2da-48ee-888e-732c1e9043d6?fields=name,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7286a1ea-1ab0-41b7-9500-9a5f78340764
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/5a0724e9-d2da-48ee-888e-732c1e9043d6", "rel": "self"}, {"href": "http://localhost/deploy_templates/5a0724e9-d2da-48ee-888e-732c1e9043d6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields [0.067409s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?detail=True&fields=name WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-60b7b47c-273d-4cdd-9ff1-9a96d7de1d1b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields [0.044096s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?detail=False&fields=internal_info WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c14dadd4-b692-4e8d-bf0f-814e76051098
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"internal_info": {"bar": "buzz"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk [0.173590s] ... 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-513ec450-07eb-4931-8c36-70f5e17d9589
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.70
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field [0.128475s] ... 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-b6ce547e-985a-427e-927c-e36e05146bb8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'driver' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version [0.097287s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/4e4d12d4-4a00-435f-9904-5775139b7d80 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_node.TestPatch.test_remove_non_existent_property_fail [0.078747s] ... 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-2b453206-fe63-4e9a-a815-18c107bf33df
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version [0.096447s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?detail=True WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d37ab9eb-5afb-45d9-a003-a8e6d95fdea4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk_old_api [0.130946s] ... 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-fa574aff-4555-42ea-b9c4-68b8981a0455
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.69
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"disable_ramdisk is not acceptable in this API version\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json [0.092636s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/9c5d11bc-1478-431c-b7a1-6e06d2e2924d.json WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ee5b5b51-26c2-4c45-80b2-d70a8ba3d71c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "9c5d11bc-1478-431c-b7a1-6e06d2e2924d", "created_at": "2025-05-29T16:55:54.579470+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9c5d11bc-1478-431c-b7a1-6e06d2e2924d", "rel": "self"}, {"href": "http://localhost/deploy_templates/9c5d11bc-1478-431c-b7a1-6e06d2e2924d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage [0.077238s] ... 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-dc455fe2-41e8-4955-9a4c-c49ff6547e0c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": []}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json_not_found [0.069338s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/0942a7dd-7808-469a-921e-81367c5d03a3.json WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b2547251-5d8f-40bc-b21d-03662b0df89a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 0942a7dd-7808-469a-921e-81367c5d03a3.json could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok [0.133930s] ... 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-d32b550b-39e1-4f4b-8681-cfc1185148f9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:54.592641+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix [0.041563s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/a9bd0781-85df-4f4e-8b0e-5399f121790b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9eda8898-49b0-43e4-9600-e335958df63c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "a9bd0781-85df-4f4e-8b0e-5399f121790b", "created_at": "2025-05-29T16:55:54.713975+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a9bd0781-85df-4f4e-8b0e-5399f121790b", "rel": "self"}, {"href": "http://localhost/deploy_templates/a9bd0781-85df-4f4e-8b0e-5399f121790b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty [0.092811s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-af481809-aa72-4f3d-a8b0-54d41d7c9dfa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": []}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid [0.054426s] ... 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-acd57ccf-0692-41a1-bc45-e260a1d313c9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps [0.154050s] ... 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-c2c7c1b3-167b-4a65-9e3f-ab4a25f7c74d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is required when setting target provision state to clean\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id [0.076029s] ... 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-e85768ce-bf7e-49d1-aebf-53e9a4363a49
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /chassis_id. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links [0.122034s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/c76b8e83-e5b9-4711-bbde-033cb6d5259b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-01871bc7-bdee-433a-9445-2e0b360277b5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "c76b8e83-e5b9-4711-bbde-033cb6d5259b", "created_at": "2025-05-29T16:55:54.790667+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c76b8e83-e5b9-4711-bbde-033cb6d5259b", "rel": "self"}, {"href": "http://localhost/deploy_templates/c76b8e83-e5b9-4711-bbde-033cb6d5259b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /v1/deploy_templates/c76b8e83-e5b9-4711-bbde-033cb6d5259b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d5af1830-c84e-459e-8c49-ad546021cbd2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "c76b8e83-e5b9-4711-bbde-033cb6d5259b", "created_at": "2025-05-29T16:55:54.790667+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c76b8e83-e5b9-4711-bbde-033cb6d5259b", "rel": "self"}, {"href": "http://localhost/deploy_templates/c76b8e83-e5b9-4711-bbde-033cb6d5259b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /deploy_templates/c76b8e83-e5b9-4711-bbde-033cb6d5259b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d8828442-3715-4148-b40b-b2981f850130
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "c76b8e83-e5b9-4711-bbde-033cb6d5259b", "created_at": "2025-05-29T16:55:54.790667+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c76b8e83-e5b9-4711-bbde-033cb6d5259b", "rel": "self"}, {"href": "http://localhost/deploy_templates/c76b8e83-e5b9-4711-bbde-033cb6d5259b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_with_runbooks [0.105066s] ... 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-eea9df8c-a7e6-441f-9c9c-a1813467d1b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin [0.154273s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-213196e7-95cc-4e7d-a53c-a8a5c827fadc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"ports": [{"uuid": "8c290d82-14fd-4a55-907c-58fef087970a", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/8c290d82-14fd-4a55-907c-58fef087970a", "rel": "self"}, {"href": "http://localhost/ports/8c290d82-14fd-4a55-907c-58fef087970a", "rel": "bookmark"}]}, {"uuid": "90652ba0-be4b-43a7-9d44-a67479d77a26", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/90652ba0-be4b-43a7-9d44-a67479d77a26", "rel": "self"}, {"href": "http://localhost/ports/90652ba0-be4b-43a7-9d44-a67479d77a26", "rel": "bookmark"}]}, {"uuid": "66275499-284f-4bc5-bf06-f69448ebea30", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/66275499-284f-4bc5-bf06-f69448ebea30", "rel": "self"}, {"href": "http://localhost/ports/66275499-284f-4bc5-bf06-f69448ebea30", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many [0.129792s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e8d46e00-7fc0-4bfb-8c40-855da1f2caa4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "052cc3eb-ee38-49bf-8604-226b1044e023", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/052cc3eb-ee38-49bf-8604-226b1044e023", "rel": "self"}, {"href": "http://localhost/deploy_templates/052cc3eb-ee38-49bf-8604-226b1044e023", "rel": "bookmark"}]}, {"uuid": "32685aca-e49a-416d-848d-e09f9d063f4c", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/32685aca-e49a-416d-848d-e09f9d063f4c", "rel": "self"}, {"href": "http://localhost/deploy_templates/32685aca-e49a-416d-848d-e09f9d063f4c", "rel": "bookmark"}]}, {"uuid": "3c5a599c-897b-40f0-9700-ce5ef3616446", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/3c5a599c-897b-40f0-9700-ce5ef3616446", "rel": "self"}, {"href": "http://localhost/deploy_templates/3c5a599c-897b-40f0-9700-ce5ef3616446", "rel": "bookmark"}]}, {"uuid": "83681848-76d8-4f9e-9cb5-54d0e722908d", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/83681848-76d8-4f9e-9cb5-54d0e722908d", "rel": "self"}, {"href": "http://localhost/deploy_templates/83681848-76d8-4f9e-9cb5-54d0e722908d", "rel": "bookmark"}]}, {"uuid": "5c560859-2826-4506-8eb1-aeab66d3efdb", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/deploy_templates/5c560859-2826-4506-8eb1-aeab66d3efdb", "rel": "self"}, {"href": "http://localhost/deploy_templates/5c560859-2826-4506-8eb1-aeab66d3efdb", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid [0.172074s] ... 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-bc7ef26c-a7fd-46f5-ba15-d161ed34a545
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:54.884685+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match [0.120838s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b7f6d915-d462-40a8-aff3-0dea50d5a5b9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"ports": []}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_with_runbooks_unapproved [0.138992s] ... 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-2908d622-b1d0-45b3-b83f-1d3dedbe97c3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This runbook has not been approved for use on this node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Please ask an administrator to add it to your node traits.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one [0.118032s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a3780b0f-5621-4f7c-8a4a-70108c54b9f7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "66cf3db8-b7f9-4904-9a28-c02536d62146", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/66cf3db8-b7f9-4904-9a28-c02536d62146", "rel": "self"}, {"href": "http://localhost/deploy_templates/66cf3db8-b7f9-4904-9a28-c02536d62146", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled [0.128833s] ... 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-e703747e-7c80-4acb-aad5-fee85811a2ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /console_enabled. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported [0.114785s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?node=test-node WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-5518a463-d518-44c5-abd4-bb54bd799d22
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi [0.178407s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 204 No Content
Openstack-Request-Id: req-2be734af-b7b8-48a5-9f7c-ede8fd7baeac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.29
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked [0.113471s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/98e4ba1c-365f-4e81-9c01-f50b5cab7599 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2364545c-dacd-4633-9379-f400be672546
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "98e4ba1c-365f-4e81-9c01-f50b5cab7599", "created_at": "2025-05-29T16:55:55.192412+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/98e4ba1c-365f-4e81-9c01-f50b5cab7599", "rel": "self"}, {"href": "http://localhost/deploy_templates/98e4ba1c-365f-4e81-9c01-f50b5cab7599", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field [0.101306s] ... 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-7dd8d5d7-7b51-40b9-bbb8-931cedb1bab9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /power_state. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok [0.154261s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e4550f4b-cf22-4604-a11b-70e856a52ebe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"ports": [{"uuid": "4b433b32-67a8-410d-b2f2-1193e94c4b66", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/4b433b32-67a8-410d-b2f2-1193e94c4b66", "rel": "self"}, {"href": "http://localhost/ports/4b433b32-67a8-410d-b2f2-1193e94c4b66", "rel": "bookmark"}]}, {"uuid": "ec12ca4d-8fb1-4c3e-bd92-9a427c25ed6a", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/ec12ca4d-8fb1-4c3e-bd92-9a427c25ed6a", "rel": "self"}, {"href": "http://localhost/ports/ec12ca4d-8fb1-4c3e-bd92-9a427c25ed6a", "rel": "bookmark"}]}, {"uuid": "74c5afb7-0831-4021-8c8b-17c4c3c9cd9b", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/74c5afb7-0831-4021-8c8b-17c4c3c9cd9b", "rel": "self"}, {"href": "http://localhost/ports/74c5afb7-0831-4021-8c8b-17c4c3c9cd9b", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed [0.122224s] ... 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-4ee041a1-6e28-440a-bb28-43962044fd16
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name [0.053210s] ... 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-6dd6ffcc-f888-47dc-a3d3-5112b71244e6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:55.334838+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance [0.134020s] ... 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-04fd840a-4c84-4952-8011-af14f5d409ae
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:55.282897+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported [0.102379s] ... 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-ee541675-e11c-4ac9-a243-71959546f3ff
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.29
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name [0.137542s] ... 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-45df8c20-f104-49c9-8f7a-e8af357c846f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:55:55.423230+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 [0.130318s] ... 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-6814d723-fd7a-4f86-b3cd-503ee46c0687
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.41
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name [0.326621s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail?portgroup=fooname WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7d6a4470-47f2-4aec-944a-35997b6d8d39
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:55.653376+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_deploy_template.TestListDeployTemplates.test_sort_key [0.491200s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4debc6d8-ac60-4cba-8a1f-b5d1770fbf50
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "42a8cdae-7fbd-45a9-aa3f-a32aba19bc66", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/42a8cdae-7fbd-45a9-aa3f-a32aba19bc66", "rel": "self"}, {"href": "http://localhost/deploy_templates/42a8cdae-7fbd-45a9-aa3f-a32aba19bc66", "rel": "bookmark"}]}, {"uuid": "b8195fb9-914f-47c9-b92b-e41eea6deb2e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/b8195fb9-914f-47c9-b92b-e41eea6deb2e", "rel": "self"}, {"href": "http://localhost/deploy_templates/b8195fb9-914f-47c9-b92b-e41eea6deb2e", "rel": "bookmark"}]}, {"uuid": "e8c365bc-2825-4861-9e4e-d865f9fdacaf", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/e8c365bc-2825-4861-9e4e-d865f9fdacaf", "rel": "self"}, {"href": "http://localhost/deploy_templates/e8c365bc-2825-4861-9e4e-d865f9fdacaf", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed [0.049422s] ... 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-69b9ab32-b46e-4e2e-ab2d-101a47a5802b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "22e1f731-6505-4a0f-bc60-9ecfe68e9d5e", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/22e1f731-6505-4a0f-bc60-9ecfe68e9d5e", "rel": "self"}, {"href": "http://localhost/deploy_templates/22e1f731-6505-4a0f-bc60-9ecfe68e9d5e", "rel": "bookmark"}]}, {"uuid": "cf3811c1-f374-4207-8cd0-babde4742f1e", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/cf3811c1-f374-4207-8cd0-babde4742f1e", "rel": "self"}, {"href": "http://localhost/deploy_templates/cf3811c1-f374-4207-8cd0-babde4742f1e", "rel": "bookmark"}]}, {"uuid": "95b09e3a-b7fc-48c8-9f3f-6022377f3a0e", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/95b09e3a-b7fc-48c8-9f3f-6022377f3a0e", "rel": "self"}, {"href": "http://localhost/deploy_templates/95b09e3a-b7fc-48c8-9f3f-6022377f3a0e", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid [0.097693s] ... 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-a206c16f-b416-4594-a63c-52d57efdea58
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:55.715437+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid [0.281917s] ... 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-641ada92-13f1-49f7-9702-25b7807c859b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid [0.048801s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3b3276ba-d920-4d8d-b4a9-0f45d87110f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/deploy_templates?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-8d4ebea0-2541-43c8-9387-30c6c1ae1ea0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/deploy_templates?sort_key=steps WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f75367b1-36a0-4f24-a40c-615e43bd3530
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached [0.032759s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f2ecefa9-6613-4a9a-a8ea-ab6210c0f52e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"prop1": "Property 1. Required."}
GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-65036e15-aa06-4f6e-a74b-5b48adb7ed46
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"prop1": "Property 1. Required."}
GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d65e1830-986a-4fb7-b500-0df12b0391fe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"prop1": "Property 1. Required."}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at [0.072881s] ... 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-e44aa023-3775-4605-aed4-3eb21f616a71
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /provision_updated_at. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load [0.065293s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/driver/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-63cca0b4-acd9-41ac-91f8-781bb2a159d0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): driver.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake [0.029543s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/test/properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b715eb0c-9dfd-4df0-996c-a8a549a27233
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"prop1": "Property 1. Required."}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type [0.028740s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-648627a4-f52d-41c6-aba3-3e2f3c658175
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"prop1": "Property 1. Required."}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid [0.202463s] ... 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-8a6b12c1-8a07-42ea-85b4-f0760fbebcdb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name [0.048273s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/bad_driver/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-81f1998f-c8d1-4a1e-9f9d-4d810093c0fe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): bad_driver.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 [0.483788s] ... 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-b2e6ed3a-7ead-48eb-a2a7-700598fd7f54
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version [0.074157s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-472cc249-6479-43d0-b22c-7737a6e3a235
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.8
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version [0.091644s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5745804c-e922-4307-b1fa-f122a424d3b1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin [0.215497s] ... 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-927f4e42-ad1a-4bb8-a0f9-6cf0120a1338
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:56.138040+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async [0.074605s] ... 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-f2cfa7fb-56ac-4b00-b5d3-a3e7044c9a4f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress [0.227590s] ... 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-3c7661b9-5f06-4d57-9867-168e16b89ee9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin_no_match [0.083794s] ... 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-742e34a3-93ef-4d81-b8a4-726245e30fa1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"ports": []}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version [0.044495s] ... 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-d0152493-91e1-4789-8bc3-7ebdc02bbafd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete [0.084991s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/drivers/fake-hardware-type/vendor_passthru/do_test GOT Response: 202 Accepted
Openstack-Request-Id: req-2c6cdc7c-0e27-4f4e-8fd8-2a5f6db42e9b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields [0.471597s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc WITH [{'path': '/boot_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f1475e01-ffc1-4a11-bbd9-3a160a732a73
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "created_at": "2025-05-29T16:55:55.940823+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc WITH [{'path': '/console_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-29e65588-4c51-45df-9725-0145cdd55666
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "created_at": "2025-05-29T16:55:55.940823+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc WITH [{'path': '/deploy_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-69308d7e-935a-46e0-9c2e-1c5c58e5db1b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "created_at": "2025-05-29T16:55:55.940823+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "self"}, {"href": "http://localhost/nodes/16
    5a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc WITH [{'path': '/inspect_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ae929dd8-30ea-494a-8099-8d7f421e3c2f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "created_at": "2025-05-29T16:55:55.940823+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc WITH [{'path': '/ma
    nagement_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-16f0630f-b9e4-4234-9104-4620b72c100e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "created_at": "2025-05-29T16:55:55.940823+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc WITH [{'path': '/power_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b7f82c7b-009d-404d-9654-51bfc2e96d0f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "created_at": "2025-05-29T16:55:55.940823+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc WITH [{'path': '/raid_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e3316901-cc0e-4752-b259-330bdff48c57
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "created_at": "2025-05-29T16:55:55.940823+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "bookmark"}], "conductor":
     null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc WITH [{'path': '/vendor_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-42bd890e-5bf3-4076-bba9-82db04a2e019
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "created_at": "2025-05-29T16:55:55.940823+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "self"}, {"href": "http://localhost/nodes/165a8ea4-35e6-4d8a-b3ea-c1b01ee369fc/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found [0.047599s] ... 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-1b02d7ee-9663-4d5f-bd31-6afbac27367d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get [0.044763s] ... 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-53725270-e08a-471d-85c5-9511e0635d1f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
"foo"
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields [0.131773s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-88779ff6-ddf2-4fe9-bfd2-5f2139def0d4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "04618d97-9b8d-4047-a1ec-2e0d4a502228", "extra": {}, "links": [{"href": "http://localhost/v1/ports/04618d97-9b8d-4047-a1ec-2e0d4a502228", "rel": "self"}, {"href": "http://localhost/ports/04618d97-9b8d-4047-a1ec-2e0d4a502228", "rel": "bookmark"}]}, {"uuid": "4bf7b92d-7db5-4dd3-8508-6cc10fef0deb", "extra": {}, "links": [{"href": "http://localhost/v1/ports/4bf7b92d-7db5-4dd3-8508-6cc10fef0deb", "rel": "self"}, {"href": "http://localhost/ports/4bf7b92d-7db5-4dd3-8508-6cc10fef0deb", "rel": "bookmark"}]}, {"uuid": "f2d746fd-e73b-4564-b21b-0e236e7ec6c6", "extra": {}, "links": [{"href": "http://localhost/v1/ports/f2d746fd-e73b-4564-b21b-0e236e7ec6c6", "rel": "self"}, {"href": "http://localhost/ports/f2d746fd-e73b-4564-b21b-0e236e7ec6c6", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value [0.192978s] ... 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-4b747d06-002a-4a26-9a22-cb6fa8f4998b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.6
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found [0.042876s] ... 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-9bdac195-a04b-401f-92c2-ff0653136b4a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: method\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods [0.077167s] ... 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-a0949e5f-de10-4c7c-9c62-77d31ebbdda6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"foo": "bar"}
GET /v1/drivers/fake-hardware-type/vendor_passthru/methods WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c7658a94-bc17-400e-8b7c-bde8a0b72e0d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"foo": "bar"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported [0.226078s] ... 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-acb044c0-970c-488a-9fa1-b25e3f31f88b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid [0.130408s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?fields=address&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-60f087f1-2af6-4a68-a608-776117aa197d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/b28c6b2e-ebf3-44ef-a1a1-639b10ac9ea4", "rel": "self"}, {"href": "http://localhost/ports/b28c6b2e-ebf3-44ef-a1a1-639b10ac9ea4", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/125251a9-4646-4420-aea6-a270f1284046", "rel": "self"}, {"href": "http://localhost/ports/125251a9-4646-4420-aea6-a270f1284046", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=125251a9-4646-4420-aea6-a270f1284046"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put [0.063526s] ... 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-f7c29955-2045-4865-a39a-8c05216eecb5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code [0.170532s] ... 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-07b59ebc-469f-4f16-bb9a-889c28bcf149
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.6
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version [0.080521s] ... 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-b48a9422-c412-42c7-a457-bf0db66e5e2e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync [0.112191s] ... 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-f65b8250-06f4-464f-8fa3-93ec26154dc0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"return_key": "return_value"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields [0.066614s] ... 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-55ac1bd5-4091-40ff-834c-c74afdb0af11
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver [0.171867s] ... 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-0654a2c0-7c65-47a7-beda-eab9141f0bbc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The reset_interfaces parameter can only be used when changing the node's driver.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail [0.125240s] ... 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-f74e64af-b6ae-4360-9ce6-331bc15f1764
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.17
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers [0.059870s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4ddcdcde-fe53-434b-bcc9-fef782519a09
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}]}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-06f5a644-e755-4771-8de5-5dc36c627167
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-29ef32b4-55c7-4293-b5d6-b28bb070957f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /v1/drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-07b94b13-7e9c-4a47-a8ec-e3c0a895449f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8476b62d-3fb5-4b4d-a700-166618cd8e45
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic [0.070216s] ... 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-46020722-e28a-4689-bf44-6455f6968556
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4af21630-5897-46f2-93a5-f70ff13429dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.53
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "is_smartnic": true, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available [0.111106s] ... 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-27fa9002-ca3e-4c8c-a0c3-e24a5b4d234f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.4
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields [0.084909s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1fd8b3cc-fcfe-4d8f-b853-1feee9f6315a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network [0.085329s] ... 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-f54b396f-0719-4397-8ae1-6fd305571671
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-afb9b77f-c54e-42e6-ab47-a57c2912e75c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "physical_network": "physnet1", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_false [0.077085s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?fields=name,hosts&detail=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-51f6d93f-4b09-47d3-8335-d77c43b5b88a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface [0.231237s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/40f55cf4-4b75-4819-b626-17d3942f8599 WITH [{'path': '/network_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a3094cf8-e726-4b0b-81fd-4bb1e12751a5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "40f55cf4-4b75-4819-b626-17d3942f8599", "created_at": "2025-05-29T16:55:56.875101+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/40f55cf4-4b75-4819-b626-17d3942f8599", "rel": "self"}, {"href": "http://localhost/nodes/40f55cf4-4b75-4819-b626-17d3942f8599", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/40f55cf4-4b75-4819-b626-17d3942f8599/ports", "rel": "self"}, {"href": "http://localhost/nodes/40f55cf4-4b75-4819-b626-17d3942f8599/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/40f55cf4-4b75-4819-b626-17d3942f8599/states", "rel": "self"}, {"href": "http://localhost/nodes/40f55cf4-4b75-4819-b626-17d3942f8599/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/40f55cf4-4b75-4819-b626-17d3942f8599/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/40f55cf4-4b75-4819-b626-17d3942f8599/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/40f55cf4-4b75-4819-b626-17d3942f8599/volume", "rel": "self"}, {"href": "http://localhost/nodes/40f55cf4-4b75-4819-b626-17d3942f8599/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade [0.141886s] ... 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-fef7e13c-fade-4b1a-ad74-7346a1c1c99f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned [0.163524s] ... 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-e75a4ca4-e805-4b8b-a931-9441376881d4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"power off\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power off'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c846b6d1-d3f7-4e47-a32f-9160c2bd6f5b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"power off\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"clean wait\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_true [0.085720s] ... 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-b4ac36f1-6de8-4db3-b7ec-8f1443119b5a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one [0.088893s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b6a192ed-bb89-4306-a062-a44b28698984
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:57.106595+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_invalid_custom_fields [0.090951s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?fields=name,invalid WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1d8ab6de-7c69-4f9c-8596-5a2274be5926
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"invalid\\\" are not valid\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request [0.090313s] ... 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-1bdd2b42-2891-4191-b1cf-dbe75e56cdd2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"None\\\".\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface [0.146952s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/07587b22-f3ef-4aec-8ec6-e36e4370d8e4 WITH [{'path': '/storage_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f710bcad-2182-44c2-907b-ca7acfcd77a9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "07587b22-f3ef-4aec-8ec6-e36e4370d8e4", "created_at": "2025-05-29T16:55:57.075100+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/07587b22-f3ef-4aec-8ec6-e36e4370d8e4", "rel": "self"}, {"href": "http://localhost/nodes/07587b22-f3ef-4aec-8ec6-e36e4370d8e4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/07587b22-f3ef-4aec-8ec6-e36e4370d8e4/ports", "rel": "self"}, {"href": "http://localhost/nodes/07587b22-f3ef-4aec-8ec6-e36e4370d8e4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/07587b22-f3ef-4aec-8ec6-e36e4370d8e4/states", "rel": "self"}, {"href": "http://localhost/nodes/07587b22-f3ef-4aec-8ec6-e36e4370d8e4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/07587b22-f3ef-4aec-8ec6-e36e4370d8e4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/07587b22-f3ef-4aec-8ec6-e36e4370d8e4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/07587b22-f3ef-4aec-8ec6-e36e4370d8e4/volume", "rel": "self"}, {"href": "http://localhost/nodes/07587b22-f3ef-4aec-8ec6-e36e4370d8e4/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version [0.028490s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?detail=True WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-c928d139-c910-4cbc-b95e-f15637921527
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.29
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false [0.027082s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?detail=False WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-2a7c6161-c111-426d-9b65-a72bb8fdf017
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.29
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields [0.082945s] ... 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-69814789-8f03-42d6-8a57-b822cbb6f67c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"address": "52:54:00:cf:2d:31", "extra": {}, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found [0.034007s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/nope WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a7ebfa6e-89f3-480b-a74c-da49b182b168
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): nope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name [0.099534s] ... 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-6acb5c17-4ef1-43c6-968d-2cfa0fa54d04
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported [0.067538s] ... 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-e3974628-a7f3-421f-b8db-a5de56219df8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none [0.107896s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-65dde27a-b718-4f3f-a0ba-4cfd1c7b27e9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:57.302860+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces [0.114831s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2c2041d2-3c13-4eab-8d04-37d028a495e3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic", "default_power_interface": null, "enabled_power_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": []}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-24daf2fa-1ce2-4df3-88c9-0c3160925ab5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9739e1a5-5d20-421f-8fb0-67a55433bc90
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_off_with_disable_power_off [0.081958s] ... 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-bf356dd9-31e5-4657-b63d-51dca3137158
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to set node power state to power off.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces [0.067817s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dffc8ed0-aea4-416a-8944-09d993014852
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic", "default_storage_interface": null, "enabled_storage_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": []}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6dd91dab-9025-4f77-90ca-043f8c899427
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e4d3eacb-fc57-4c45-8ead-31fdf29fac33
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_ports_by_description [0.111905s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?description_contains=cat WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c46f0f4f-5a4c-45a9-9ff8-90a2b3bae429
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "d92ae17a-673e-43f7-a4db-a7a0c02f1572", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/d92ae17a-673e-43f7-a4db-a7a0c02f1572", "rel": "self"}, {"href": "http://localhost/ports/d92ae17a-673e-43f7-a4db-a7a0c02f1572", "rel": "bookmark"}]}]}
GET /v1/ports?description_contains=dog WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fdab5eb1-992f-4774-80ab-7136c867c8ef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "33202db4-b3fd-41e2-b79e-4e312b146e93", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/33202db4-b3fd-41e2-b79e-4e312b146e93", "rel": "self"}, {"href": "http://localhost/ports/33202db4-b3fd-41e2-b79e-4e312b146e93", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor [0.051503s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-351ecba7-73a2-4c3b-8015-2a1353e4aa80
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"drivers": []}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value [0.037387s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?type=working WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5908121e-9dff-4a89-8fc9-734eaa03c896
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"type\\\" filter must be one of \\\"classic\\\" or \\\"dynamic\\\", if specified.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance [0.361347s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/5b5c068f-f071-4c8b-844a-d089410728a7 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-44805dac-6856-4967-8df3-23bbfb540e5c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "5b5c068f-f071-4c8b-844a-d089410728a7", "created_at": "2025-05-29T16:55:57.209240+00:00", "updated_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/5b5c068f-f071-4c8b-844a-d089410728a7", "rel": "self"}, {"href": "http://localhost/nodes/5b5c068f-f071-4c8b-844a-d089410728a7", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5b5c068f-f071-4c8b-844a-d089410728a7/ports", "rel": "self"}, {"href": "http://localhost/nodes/5b5c068f-f071-4c8b-844a-d089410728a7/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver [0.131362s] ... 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-7be26257-8029-472c-827b-7e2ec677acaf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version [0.054776s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?type=classic WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-cbbf4da8-3feb-477d-b8af-fcca7056b57d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.29
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net [0.170981s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0fa37320-4f27-4e40-aeaa-072c5005d986
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:57.519301+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-67994f20-af67-475c-a191-5930ec28463b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.19
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:57.519301+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_driver.TestListDrivers.test_drivers_type_filter_classic [0.073394s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?type=classic WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-da64d6e1-9f10-4f59-b902-e3c93179ab40
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"drivers": []}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver [0.149703s] ... 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-af014dfe-fbd4-4e44-a52e-88f36dd2c493
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition [0.181954s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/04443f28-117f-4505-a062-aaecd5b6c3af WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-40e4bf66-b428-46b7-859a-2c6776baa611
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "04443f28-117f-4505-a062-aaecd5b6c3af", "created_at": "2025-05-29T16:55:57.601130+00:00", "updated_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/04443f28-117f-4505-a062-aaecd5b6c3af", "rel": "self"}, {"href": "http://localhost/nodes/04443f28-117f-4505-a062-aaecd5b6c3af", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/04443f28-117f-4505-a062-aaecd5b6c3af/ports", "rel": "self"}, {"href": "http://localhost/nodes/04443f28-117f-4505-a062-aaecd5b6c3af/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info [0.083491s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a5db64fd-a6f8-4f05-ab05-5e83e02b8705
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:57.675237+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-077e31b3-2981-46fd-bacc-0082d1f5d0bc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:57.675237+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic [0.080581s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?type=dynamic WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5092c371-a11c-4273-b716-c4e98ffd4eff
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic"}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver [0.052031s] ... 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-88fbc377-69aa-41c7-a5bb-4857859da55d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean [0.130495s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ee6cd113-82e4-4278-bb7b-10be7849c4d8 WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0b7ba1af-73c0-432f-9994-a8a0a9169e77
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "ee6cd113-82e4-4278-bb7b-10be7849c4d8", "created_at": "2025-05-29T16:55:57.763747+00:00", "updated_at": null, "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/ee6cd113-82e4-4278-bb7b-10be7849c4d8", "rel": "self"}, {"href": "http://localhost/nodes/ee6cd113-82e4-4278-bb7b-10be7849c4d8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ee6cd113-82e4-4278-bb7b-10be7849c4d8/ports", "rel": "self"}, {"href": "http://localhost/nodes/ee6cd113-82e4-4278-bb7b-10be7849c4d8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ee6cd113-82e4-4278-bb7b-10be7849c4d8/states", "rel": "self"}, {"href": "http://localhost/nodes/ee6cd113-82e4-4278-bb7b-10be7849c4d8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ee6cd113-82e4-4278-bb7b-10be7849c4d8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ee6cd113-82e4-4278-bb7b-10be7849c4d8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ee6cd113-82e4-4278-bb7b-10be7849c4d8/volume", "rel": "self"}, {"href": "http://localhost/nodes/ee6cd113-82e4-4278-bb7b-10be7849c4d8/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver [0.081426s] ... 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-ba9662de-617c-4f66-a03e-c2fc86f9d18b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic [0.148585s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-72508503-4b27-4767-8341-4386804db612
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:57.790494+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-d97ba49f-409f-45ae-871f-098455eeb9fe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.53
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:57.790494+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic [0.162664s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-43e7a125-a600-492d-94ae-ba5e520b1ef8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic"}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic"}]}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9a66e95d-d9fa-4b3c-a949-00d3b688c97a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b17e4cbb-c750-40f2-86f6-884577b57dc7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /v1/drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-937e45e6-5bd8-4c0b-983b-90ecc83c514b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-43b5d49e-9358-46c9-aaf9-d2e2fc436bf8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver [0.099082s] ... 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-127553eb-5f06-4bfd-a1b6-6da05a0a0cf1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api [0.097371s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/3b6d1556-5a43-4b5e-be44-48c6558fd746 WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-02e15ae8-d52e-4712-97b8-4dc3286030e2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed [0.101914s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-52c40b3c-d1d0-4739-b3a5-69f0685abe59
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic", "default_power_interface": null, "enabled_power_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_vendor_interface": null, "enabled_vendor_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_deploy_interface": null, "enabled_deploy_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": []}]}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d6281866-4c6e-4534-90eb-4a6d88c666ff
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-95772f26-e075-4638-970b-628879959877
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /v1/drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0a21825e-13b9-4380-b713-bf8110bd5a55
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ad70d663-4352-4f36-b15c-0de75dd65c
    bb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_ovn_vtep [0.131376s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d103cd23-ddcf-43e8-a6d6-8e403e54608c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:57.948185+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-89ff4875-d3d0-4289-918d-c5bc423a2045
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:57.948185+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-2d86bb9b-1f82-4359-a794-1b1c2c4b963e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:57.948185+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"port_id": "42", "vtep-logical-switch": "lswitch", "vtep-physical-switch": "jswitch"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver [0.078183s] ... 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-42755fbb-1d72-495d-bd99-7975f277e428
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network [0.053757s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aad0b24d-c0c7-4c53-99ba-0f956d572a0d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:58.028615+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-bbafe58f-a79d-4b9d-8f77-963eb9628f8a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:58.028615+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet1", "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_with_false [0.145113s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/5754dbb5-59fc-490b-b1f7-31a259199869 WITH [{'path': '/automated_clean', 'value': False, 'op': 'replace'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4fa61675-db9d-405e-b115-185486d3dbf7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface [0.118673s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ddc01b3d-2d56-47c7-94a1-87daa17b8768
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic", "default_storage_interface": null, "enabled_storage_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_vendor_interface": null, "enabled_vendor_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_storage_interface": null, "enabled_storage_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": []}]}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-397b0f12-9057-4a21-95c9-abb06fcd4434
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-15c2e41c-b6a6-4220-a5ad-636ec99a1e9f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /v1/drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-
    8ccfa87b-aaf6-40c8-b026-41e6551b5ac5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9e3fcf21-9fb3-45c8-83d1-778f970e755a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver [0.112082s] ... 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-bc621bd0-1557-453d-b574-550eeabb31b8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade [0.098871s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3882bfc3-e07b-4e23-a143-9b1f05127695
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:58.118254+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_custom_fields_invalid_api_version [0.053962s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-e4437148-eece-486e-9dcb-2ff78e4f719b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
GET /v1/drivers/fake-hardware-type?fields=name,hosts WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-bf9afcf1-e3c2-430b-9d22-fd08cdaab8d6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported [0.101211s] ... 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-9d0c88ba-d8f5-4aa5-b403-523c4bb5e4aa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-57.1 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver [0.124738s] ... 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-4deee167-9a67-4926-a7d9-eb64b6865594
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid [0.099525s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5d5b8847-58a6-4b44-89d5-48e52b32580a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.23
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:58.206557+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-e0acbd68-cad4-49bf-b7d0-6f9d72685ee9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:55:58.206557+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_custom_fields [0.107880s] ... 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-1470856d-5cc5-4d16-9bb7-e4c0857eaef2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group [0.129362s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/4af264a7-6fca-4d6d-b742-5f56e8ef30e7 WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3066ab35-eb10-451c-891f-364237540efd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "4af264a7-6fca-4d6d-b742-5f56e8ef30e7", "created_at": "2025-05-29T16:55:58.247947+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/4af264a7-6fca-4d6d-b742-5f56e8ef30e7", "rel": "self"}, {"href": "http://localhost/nodes/4af264a7-6fca-4d6d-b742-5f56e8ef30e7", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4af264a7-6fca-4d6d-b742-5f56e8ef30e7/ports", "rel": "self"}, {"href": "http://localhost/nodes/4af264a7-6fca-4d6d-b742-5f56e8ef30e7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4af264a7-6fca-4d6d-b742-5f56e8ef30e7/states", "rel": "self"}, {"href": "http://localhost/nodes/4af264a7-6fca-4d6d-b742-5f56e8ef30e7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4af264a7-6fca-4d6d-b742-5f56e8ef30e7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4af264a7-6fca-4d6d-b742-5f56e8ef30e7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4af264a7-6fca-4d6d-b742-5f56e8ef30e7/volume", "rel": "self"}, {"href": "http://localhost/nodes/4af264a7-6fca-4d6d-b742-5f56e8ef30e7/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_invalid_custom_fields [0.074638s] ... 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-653c99eb-58f7-4e79-8ee1-2539f7a34970
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"invalid\\\" are not valid\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver [0.124416s] ... 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-71986cc9-1d2c-411d-a8d5-64baf23c54ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links [0.124146s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/89c66dd8-a242-440a-b98f-43fa94e89ece WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a7005d20-e90b-4f06-b973-83f33d949865
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "89c66dd8-a242-440a-b98f-43fa94e89ece", "created_at": "2025-05-29T16:55:58.298093+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/89c66dd8-a242-440a-b98f-43fa94e89ece", "rel": "self"}, {"href": "http://localhost/ports/89c66dd8-a242-440a-b98f-43fa94e89ece", "rel": "bookmark"}]}
GET /v1/ports/89c66dd8-a242-440a-b98f-43fa94e89ece WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-70008aa2-bc63-45d9-854f-4f3fa19d3126
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "89c66dd8-a242-440a-b98f-43fa94e89ece", "created_at": "2025-05-29T16:55:58.298093+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/89c66dd8-a242-440a-b98f-43fa94e89ece", "rel": "self"}, {"href": "http://localhost/ports/89c66dd8-a242-440a-b98f-43fa94e89ece", "rel": "bookmark"}]}
GET /ports/89c66dd8-a242-440a-b98f-43fa94e89ece WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-158f0761-246c-40fa-b6f9-d42223791d38
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "89c66dd8-a242-440a-b98f-43fa94e89ece", "created_at": "2025-05-29T16:55:58.298093+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/89c66dd8-a242-440a-b98f-43fa94e89ece", "rel": "self"}, {"href": "http://localhost/ports/89c66dd8-a242-440a-b98f-43fa94e89ece", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api [0.087213s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/3d775589-1117-4dca-9976-eccbf2f66c0b WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-97d8d826-bd91-40c6-9290-4af15521520c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links [0.058000s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-86ff7053-61c1-47ff-8282-e1ca024be6f6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e0402e61-233c-4027-abbf-738dfacb1481
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eb28ac4d-98e5-4e51-aeab-18b4101ac63e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url [0.072247s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/31063b9c-48a8-4957-a2ce-be48f2a1354a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c7b62ccc-0462-40b1-9989-ed2289e6cefb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "31063b9c-48a8-4957-a2ce-be48f2a1354a", "created_at": "2025-05-29T16:55:58.417800+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/31063b9c-48a8-4957-a2ce-be48f2a1354a", "rel": "self"}, {"href": "http://foo/ports/31063b9c-48a8-4957-a2ce-be48f2a1354a", "rel": "bookmark"}]}
GET /v1/ports/31063b9c-48a8-4957-a2ce-be48f2a1354a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5f092539-929b-436c-90a8-6fdb8c500f41
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "31063b9c-48a8-4957-a2ce-be48f2a1354a", "created_at": "2025-05-29T16:55:58.417800+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/31063b9c-48a8-4957-a2ce-be48f2a1354a", "rel": "self"}, {"href": "http://foo/ports/31063b9c-48a8-4957-a2ce-be48f2a1354a", "rel": "bookmark"}]}
GET /ports/31063b9c-48a8-4957-a2ce-be48f2a1354a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-acd47059-ea32-41dc-9d89-e36a2b014c50
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "31063b9c-48a8-4957-a2ce-be48f2a1354a", "created_at": "2025-05-29T16:55:58.417800+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/31063b9c-48a8-4957-a2ce-be48f2a1354a", "rel": "self"}, {"href": "http://foo/ports/31063b9c-48a8-4957-a2ce-be48f2a1354a", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url [0.077591s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-84ecc8f0-9ba5-4220-85bb-198e7ba3db0d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://foo/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://foo/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0db92213-258a-4259-af4e-0df8e68aa378
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://foo/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://foo/drivers/fake-hardware-type", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d15dad31-2309-4e91-8810-eea3b8e93cee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://foo/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://foo/drivers/fake-hardware-type", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver [0.142149s] ... 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-72049cba-2594-417b-b596-f13146312484
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties [0.047925s] ... 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-74b9d8ef-6db6-4f47-beab-9c72e6bf5e35
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"foo": "description of foo"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description [0.172793s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/77d7eb33-8a37-4ac7-80ea-ace61cc33454 WITH [{'path': '/description', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d710e89c-652b-427a-bda1-7147d8028d4a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"uuid": "77d7eb33-8a37-4ac7-80ea-ace61cc33454", "created_at": "2025-05-29T16:55:58.500429+00:00", "updated_at": null, "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/77d7eb33-8a37-4ac7-80ea-ace61cc33454", "rel": "self"}, {"href": "http://localhost/nodes/77d7eb33-8a37-4ac7-80ea-ace61cc33454", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/77d7eb33-8a37-4ac7-80ea-ace61cc33454/ports", "rel": "self"}, {"href": "http://localhost/nodes/77d7eb33-8a37-4ac7-80ea-ace61cc33454/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/77d7eb33-8a37-4ac7-80ea-ace61cc33454/states", "rel": "self"}, {"href": "http://localhost/nodes/77d7eb33-8a37-4ac7-80ea-ace61cc33454/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/77d7eb33-8a37-4ac7-80ea-ace61cc33454/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/77d7eb33-8a37-4ac7-80ea-ace61cc33454/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/77d7eb33-8a37-4ac7-80ea-ace61cc33454/volume", "rel": "self"}, {"href": "http://localhost/nodes/77d7eb33-8a37-4ac7-80ea-ace61cc33454/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden [0.125715s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-73384838-a1a9-4e38-ba47-f8a0f4972d24
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached [0.062104s] ... 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-8e287cdc-76e1-413e-8257-50224e40622b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"foo": "description of foo"}
GET /v1/drivers/fake-hardware-type/raid/logical_disk_properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b3853f34-3589-4308-b62e-e41d1ae95b65
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"foo": "description of foo"}
GET /v1/drivers/fake-hardware-type/raid/logical_disk_properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-226d0637-1f09-49ce-9edf-3144ac7d9184
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"foo": "description of foo"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver [0.113501s] ... 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-22222b27-ca1a-4c8a-a15f-70b87679e0e1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported [0.050963s] ... 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-67b333eb-f1a1-4ad2-8617-820f66432e01
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize [0.074721s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/5174d4a3-2226-4cb7-98d5-a0e53442daa0 WITH [{'path': '/description', 'value': '123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812
    3456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b437d345-43c2-4470-a13c-c69a43325e1b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node with description exceeding 4096 characters\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version [0.051965s] ... 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-3e7021f8-8493-4875-9faa-4c6f70dc3a6d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.4
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden_no_project [0.182061s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a7c81415-67bd-4857-9566-a050af5988fd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver [0.152813s] ... 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-7e1bfbcc-67c0-468a-9a6c-bfd3c9f2bd42
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events [0.125988s] ... 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-8a59bd3e-f17a-49cf-84eb-568a3ed4dd9a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver [0.181546s] ... 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-56619f7e-6140-4e56-98bc-93922703bf61
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many [0.125040s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dad20911-bb4c-435d-86fc-b1ee8d9b95c7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "83a83e25-5e08-4dd2-9845-9c3efd70cb9c", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/83a83e25-5e08-4dd2-9845-9c3efd70cb9c", "rel": "self"}, {"href": "http://localhost/ports/83a83e25-5e08-4dd2-9845-9c3efd70cb9c", "rel": "bookmark"}]}, {"uuid": "754ece4f-7990-49f5-bae0-71168570262d", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/754ece4f-7990-49f5-bae0-71168570262d", "rel": "self"}, {"href": "http://localhost/ports/754ece4f-7990-49f5-bae0-71168570262d", "rel": "bookmark"}]}, {"uuid": "77764254-c33b-4de2-9a85-359bad823c37", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/77764254-c33b-4de2-9a85-359bad823c37", "rel": "self"}, {"href": "http://localhost/ports/77764254-c33b-4de2-9a85-359bad823c37", "rel": "bookmark"}]}, {"uuid": "4ee96659-6f8a-4ce3-9738-240bae9f8389", "address": "52:54:00:cf:2d:33", "links": [{"href": "http://localhost/v1/ports/4ee96659-6f8a-4ce3-9738-240bae9f8389", "rel": "self"}, {"href": "http://localhost/ports/4ee96659-6f8a-4ce3-9738-240bae9f8389", "rel": "bookmark"}]}, {"uuid": "dccb9d4d-0095-4d3c-8528-99876b717009", "address": "52:54:00:cf:2d:34", "links": [{"href": "http://localhost/v1/ports/dccb9d4d-0095-4d3c-8528-99876b717009", "rel": "self"}, {"href": "http://localhost/ports/dccb9d4d-0095-4d3c-8528-99876b717009", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver [0.141158s] ... 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-60ede18a-4933-457d-a938-c1cb5034d2ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many_non_admin [0.080152s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-37c8abe2-8a21-4d70-969e-deac9715b6ef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "56d3aab4-6ae8-4c1f-9d61-4e11d98f1b56", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/56d3aab4-6ae8-4c1f-9d61-4e11d98f1b56", "rel": "self"}, {"href": "http://localhost/ports/56d3aab4-6ae8-4c1f-9d61-4e11d98f1b56", "rel": "bookmark"}]}, {"uuid": "af6f1ee3-6303-493c-9464-83663da7305f", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/af6f1ee3-6303-493c-9464-83663da7305f", "rel": "self"}, {"href": "http://localhost/ports/af6f1ee3-6303-493c-9464-83663da7305f", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver [0.057864s] ... 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-f088fa10-6fb6-4d32-858e-5dd15a7e9300
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver [0.074430s] ... 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-6ae0c01c-2ab8-45d6-9e00-cdd8c8b416dd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one [0.088232s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d68d0591-69d7-4ed5-b151-012f9009049d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info [0.229813s] ... 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-ce982619-0eed-47d1-8f69-8eac8ba01751
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error Message\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver [0.112865s] ... 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-47ef028c-d052-4957-88fb-61ec1c859387
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_disabled_bios_boot_mode [0.092063s] ... 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-2e21b9fd-bb26-4d34-b8e2-bc71444b46bb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'bios' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_does_not_contain_event [0.354126s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-796b600e-800e-4f13-9626-ac30aa832eea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event [0.029935s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-76ce1092-e417-4ef5-8931-31377085a3c0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'invalid.event' is not one of ['network.bind_port', 'network.unbind_port', 'network.delete_port']\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_unsupported_api_version [0.032443s] ... 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-0d2d3ba7-1174-4780-b854-841cb030a133
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_disabled_uefi_boot_mode [0.091653s] ... 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-d6aae51a-bad1-4239-bbe5-025f47deb47e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'uefi' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address [0.232868s] ... 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-1a01857e-6ee9-4040-9951-77ca3d286662
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "d464cf75-bb84-4fcb-98a2-130d430be283", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/d464cf75-bb84-4fcb-98a2-130d430be283", "rel": "self"}, {"href": "http://localhost/ports/d464cf75-bb84-4fcb-98a2-130d430be283", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver [0.125396s] ... 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-b779a922-a1c1-4ff3-b35d-1ea1b59fcbeb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_multiple_events [0.072642s] ... 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-de5bef46-57cd-4747-aaeb-d73d0a845c41
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_bind_port_events [0.049886s] ... 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-e03d619a-566c-4319-88d9-35b0ad00b001
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver [0.085393s] ... 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-8cf70958-dac6-4771-b395-52f8a6fff9f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_invalid_boot_mode [0.136044s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_delete_port_events [0.044422s] ... 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-7e34f10a-6d47-4a50-8c5a-af3a599cc174
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format [0.135650s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-2b18e3da-dad2-49ad-930f-098e96838d6b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_with_disable_power_off [0.052036s] ... 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-35358204-445e-4f36-9fa5-c25989664e79
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to set node power state to soft power off.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_host_id [0.055047s] ... 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-1a8084c4-1994-46c7-a600-07c26a2d90e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'] is not of type 'string', 'null'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_vnic_type [0.041775s] ... 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-bda80f22-e618-46fb-bd37-a12d3fce23d8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'] is not of type 'string', 'null'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin [0.087911s] ... 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-436c3e83-10cc-4a42-924b-4ff9db89c5cf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "7a6f137b-8150-4f9c-a4f9-2c816321acae", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/7a6f137b-8150-4f9c-a4f9-2c816321acae", "rel": "self"}, {"href": "http://localhost/ports/7a6f137b-8150-4f9c-a4f9-2c816321acae", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage [0.093583s] ... 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-91e6d410-89d8-4cc4-aa4c-e4f04777f5f9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.4
{2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_device_id [0.035396s] ... 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-f814e393-a269-40eb-ba9a-3acf037c0e96
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for device_id: DEVICE_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_mac_address [0.033570s] ... 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-220f7f82-73f4-4c5d-b5fd-ce85060cf211
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress [0.049764s] ... 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-bc89edc4-94e9-4be1-bda1-01b7550d4838
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin_no_match [0.067262s] ... 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-1e427db9-78ba-45fa-a663-3ac246a3d2ee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": []}
{2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_port_id [0.057168s] ... 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-f23a8e13-57de-4a1f-9149-00081f9b2a80
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address [0.085638s] ... 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-210729fb-8158-4d72-a913-5ec8ea717b4e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": []}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state [0.107140s] ... 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-a9a11ed2-6847-4525-88f1-77eb5d35ffd1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_status [0.062968s] ... 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-e2cb402b-da84-46b4-8da6-8008cfcb76b1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident [0.091948s] ... 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_event.TestPostRBAC.test_network_unbind_port_events [0.083758s] ... 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-7c9213fe-709d-476e-b7b2-0ea6d481b2a8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name [0.118842s] ... 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-4130efaf-f5f0-4961-acd8-474e7b5c4112
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found [0.048081s] ... 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_event.TestPostRBAC.test_network_unknown_event_property [0.057915s] ... 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-d74cb355-b8aa-4084-b7b6-03172817dbeb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported [0.084710s] ... 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-9841866a-c69e-455b-b04b-de40d09370b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key [0.083728s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4e503ab1-e302-4802-93f6-2af70dfc3f88
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "0b343129-eb08-47d3-a9f4-a2fc306e870c", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/0b343129-eb08-47d3-a9f4-a2fc306e870c", "rel": "self"}, {"href": "http://localhost/ports/0b343129-eb08-47d3-a9f4-a2fc306e870c", "rel": "bookmark"}]}, {"uuid": "344d91a5-3094-47d1-b5b1-82fedaa767ce", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/344d91a5-3094-47d1-b5b1-82fedaa767ce", "rel": "self"}, {"href": "http://localhost/ports/344d91a5-3094-47d1-b5b1-82fedaa767ce", "rel": "bookmark"}]}, {"uuid": "8b80b45a-618c-4a00-b153-eb6680491761", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/8b80b45a-618c-4a00-b153-eb6680491761", "rel": "self"}, {"href": "http://localhost/ports/8b80b45a-618c-4a00-b153-eb6680491761", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestDelete.test_delete_by_uuid [0.070083s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/inspection_rules/2989f135-264e-4959-8c3f-f3c1ee8fc728 GOT Response: 204 No Content
Openstack-Request-Id: req-cd651191-7402-4e4d-b811-9c990ff7e81a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_deploy [0.051732s] ... 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-75a93232-bede-450b-96fe-3fba8d8cbc50
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.73
{2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestDelete.test_delete_invalid_api_version [0.036807s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/inspection_rules/2ccf1390-6ba3-4f96-9551-08bc366af639 GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow inspection rules\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated [0.050021s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-8de7a7f5-d07d-427d-844f-0cd18d3a725f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is associated with instance aaaaaaaa-1111-bbbb-2222-cccccccccccc.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed [0.107425s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e1177500-1d35-4ea3-a54b-677f2567a8dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "0d218ae4-1ec9-49e6-b0ad-eb2ac1d4cb1c", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/0d218ae4-1ec9-49e6-b0ad-eb2ac1d4cb1c", "rel": "self"}, {"href": "http://localhost/ports/0d218ae4-1ec9-49e6-b0ad-eb2ac1d4cb1c", "rel": "bookmark"}]}, {"uuid": "35f46de9-37a4-4316-9945-fd1ee0c7795d", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/35f46de9-37a4-4316-9945-fd1ee0c7795d", "rel": "self"}, {"href": "http://localhost/ports/35f46de9-37a4-4316-9945-fd1ee0c7795d", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request [0.080881s] ... 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-8cef5495-13db-4677-8d81-2e4791658aaa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node [0.056508s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 204 No Content
Openstack-Request-Id: req-866b73aa-561e-45d3-988c-eca7ac7e3a69
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES [0.729757s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/19ca39bd-5ead-49fc-90f5-c2829801955f WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b339331d-f5f5-4b4a-9437-bad6d77c277d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "19ca39bd-5ead-49fc-90f5-c2829801955f", "created_at": "2025-05-29T16:55:59.455385+00:00", "updated_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/19ca39bd-5ead-49fc-90f5-c2829801955f", "rel": "self"}, {"href": "http://localhost/nodes/19ca39bd-5ead-49fc-90f5-c2829801955f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/19ca39bd-5ead-49fc-90f5-c2829801955f/ports", "rel": "self"}, {"href": "http://localhost/nodes/19ca39bd-5ead-49fc-90f5-c2829801955f/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/f087e8f6-6d28-45fd-bbfc-87b2b440618d WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6de72188-c2bc-4ee4-8820-df3d9c5f5ce0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "f087e8f6-6d28-45fd-bbfc-87b2b440618d", "created_at": "2025-05-29T16:55:59.534909+00:00", "updated_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/f087e8f6-6d28-45fd-bbfc-87b2b440618d", "rel": "self"}, {"href": "http://localhost/nodes/f087e8f6-6d28-45fd-bbfc-87b2b440618d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f087e8f6-6d28-45fd-bbfc-87b2b440618d/ports", "rel": "self"}, {"href": "http://localhost/nodes/f087e8f6-6d28-45fd-bbfc-87b2b440618d/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/737000e3-e705-45e5-ae65-25efb2eda016 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-076bff15-723b-41c4-94ea-261ae7c1d48c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "737000e3-e705-45e5-ae65-25efb2eda016", "created_at": "2025-05-29T16:55:59.574263+00:00", "updated_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/737000e3-e705-45e5-ae65-25efb2eda016", "rel": "self"}, {"href": "http://localhost/nodes/737000e3-e705-45e5-ae65-25efb2eda016", "rel": "bookmark"}
    ], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/737000e3-e705-45e5-ae65-25efb2eda016/ports", "rel": "self"}, {"href": "http://localhost/nodes/737000e3-e705-45e5-ae65-25efb2eda016/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/07f08b83-d8c4-4455-9ef8-d5a64e1a44ac WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0835e131-7eed-4e50-a255-3ebb13d4dbad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "07f08b83-d8c4-4455-9ef8-d5a64e1a44ac", "created_at": "2025-05-29T16:55:59.654079+00:00", "updated_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/07f08b83-d8c4-4455-9ef8-d5a64e1a44ac", "rel": "self"}, {"href": "http://localhost/nodes/07f08b83-d8c4-4455-9ef8-d5a64e1a44ac", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/07f08b83-d8c4-4455-9ef8-d5a64e1a44ac/ports", "rel": "self"}, {"href": "http://localhost/nodes/07f08b83-d8c4-4455-9ef8-d5a64e1a44ac/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/f3730a64-a5dd-4a54-a194-8ea8b0d4b2c6 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ca65e455-332d-466b-a28b-80a80f8846db
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "f3730a64-a5dd-4a54-a194-8ea8b0d4b2c6", "created_at": "2025-05-29T16:55:59.710803+00:00", "updated_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/f3730a64-a5dd-4a54-a194-8ea8b0d4b2c6", "rel": "self"}, {"href": "http://localhost/nodes/f3730a64-a5dd-4a54-a194-8ea8b0d4b2c6", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f3730a64-a5dd-4a54-a194-8ea8b0d4b2c6/ports", "rel": "self"}, {"href": "http://localhost/nodes/f3730a64-a5dd-4a54-a194-8ea8b0d4b2c6/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/7bf06bd9-ad7c-4119-a934-b10976871008 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-46de49ab-5038-43ec-bc8d-965d508828a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "7bf06bd9-ad7c-4119-a934-b10976871008", "created_at": "2025-05-29T16:55:59.775928+00:00", "updated_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/7bf06bd9-ad7c-4119-a934-b10976871008", "rel": "self"}, {"href": "http://localhost/nodes/7bf06bd9-ad7c-4119-a934-b10976871008", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7bf06bd9-ad7c-4119-a934-b10976871008/ports", "rel": "self"}, {"href": "http://localhost/nodes/7bf06bd9-ad7c-4119-a934-b10976871008/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/26dbc028-9ef8-4e99-91db-54cb9a80ad0f WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eaf2a1c3-f386-4d2d-b360-b67c2ed5e645
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "26dbc028-9ef8-4e99-91db-54cb9a80ad0f", "created_at": "2025-05-29T16:55:59.814063+00:00", "updated_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/26dbc028-9ef8-4e99-91db-54cb9a80ad0f", "rel": "self"}, {"href": "http://localhost/nodes/26dbc028-9ef8-4e99-91db-54cb9a80ad0f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/26dbc028-9ef8-4e99-91db-54cb9a80ad0f/ports", "rel": "self"}, {"href": "http://localhost/nodes/26dbc028-9ef8-4e99-91db-54cb9a80ad0f/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/2d8d4067-6d63-446f-831e-f8f0235a9e8f WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e2172bc7-366d-401d-826c-447e7edebf86
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "2d8d4067-6d63-446f-831e-f8f0235a9e8f", "created_at": "2025-05-29T16:55:59.867180+00:00", "updated_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/2d8d4067-6d63-446f-831e-f8f0235a9e8f", "rel": "self"}, {"href": "http://localhost/nodes/2d8d4067-6d63-446f-831e-f8f0235a9e8f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2d8d4067-6d63-446f-831e-f8f0235a9e8f/ports", "rel": "self"}, {"href": "http://localhost/nodes/2d8d4067-6d63-446f-831e-f8f0235a9e8f/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/60014b93-b1a4-4711-a3ba-6bc335c3726d WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4a2d62f5-3cb1-4709-b23e-1f0858ddc829
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "60014b93-b1a4-4711-a3ba-6bc335c3726d", "created_at": "2025-05-29T16:55:59.908752+00:00", "updated_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/60014b93-b1a4-4711-a3ba-6bc335c3726d", "rel": "self"}, {"href": "http://localhost/nodes/60014b93-b1a4-4711-a3ba-6bc335c3726d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/60014b93-b1a4-4711-a3ba-6bc335c3726d/ports", "rel": "self"}, {"href": "http://localhost/nodes/60014b93-b1a4-4711-a3ba-6bc335c3726d/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/528064bf-a08e-41f9-948f-813ae4c20858 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b0d4df34-9d72-41bc-b0b1-37fa17136d18
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "528064bf-a08e-41f9-948f-813ae4c20858", "created_at": "2025-05-29T16:55:59.948343+00:00", "updated_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/528064bf-a08e-41f9-948f-813ae4c20858", "rel": "self"}, {"href": "http://localhost/nodes/528064bf-a08e-41f9-948f-813ae4c20858", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/528064bf-a08e-41f9-948f-813ae4c20858/ports", "rel": "self"}, {"href": "http://localhost/nodes/528064bf-a08e-41f9-948f-813ae4c20858/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/b21bc46c-6dda-4030-a51e-e897f1cea032 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e412fed4-bbd4-4413-8eb5-0d20a2fab2cf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b21bc46c-6dda-4030-a51e-e897f1cea032", "created_at": "2025-05-29T16:55:59.996087+00:00", "updated_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/b21bc46c-6dda-4030-a51e-e897f1cea032", "rel": "self"}, {"href": "http://localhost/nodes/b21bc46c-6dda-4030-a51e-e897f1cea032", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b21bc46c-6dda-4030-a51e-e897f1cea032/ports", "rel": "self"}, {"href": "http://localhost/nodes/b21bc46c-6dda-4030-a51e-e897f1cea032/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/107dd030-42ac-4b1a-9193-170d3879cea6 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f7c41ef9-9b6a-424b-9c45-994b8cdb7d2b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "107dd030-42ac-4b1a-9193-170d3879cea6", "created_at": "2025-05-29T16:56:00.027915+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/107dd030-42ac-4b1a-9193-170d3879cea6", "rel": "self"}, {"href": "http://localhost/nodes/107dd030-42ac-4b1a-9193-170d3879cea6", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/107dd030-42ac-4b1a-9193-170d3879cea6/ports", "rel": "self"}, {"href": "http://localhost/nodes/107dd030-42ac-4b1a-9193-170d3879cea6/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/b777c99c-8309-4579-b439-819fc217ddd5 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e4509f2f-7b5f-469d-a3e9-2215e661f0c9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b777c99c-8309-4579-b439-819fc217ddd5", "created_at": "2025-05-29T16:56:00.069705+00:00", "updated_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/b777c99c-8309-4579-b439-819fc217ddd5", "rel": "self"}, {"href": "http://localhost/nodes/b777c99c-8309-4579-b439-819fc217ddd5", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b777c99c-8309-4579-b439-819fc217ddd5/ports", "rel": "self"}, {"href": "http://localhost/nodes/b777c99c-8309-4579-b439-819fc217ddd5/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid [0.119754s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0e6f721d-fc46-470e-abad-13f279e98c0a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/ports?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-593b0117-1eca-4bc9-81f9-99f64964f44f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/ports?sort_key=internal_info WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5cd3e1f7-80fb-497b-a01a-6d7a5f3a2a17
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/ports?sort_key=local_link_connection WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c5c53b18-d482-427a-9760-9527c69d4a80
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state [0.134260s] ... 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-1194eb7d-8032-4f54-87c5-f0f6d5b6acf5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node  is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name [0.112843s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo.1 GOT Response: 204 No Content
Openstack-Request-Id: req-a52d3937-29e6-4244-912d-20ac62294fe0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed [0.038090s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-55a68cb7-b176-4200-ac3c-7fc2372ca224
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail [0.061507s] ... 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-24e2a76d-786e-40f4-8709-ad5e7f1cad18
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The provisioning operation can't be performed on node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 because it's in maintenance mode.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed [0.113541s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/648d6318-57df-4fc1-a2be-59bbb4490d06 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9103fe46-ffaf-4647-b95a-84e2e75bbae4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"uuid": "648d6318-57df-4fc1-a2be-59bbb4490d06", "created_at": "2025-05-29T16:56:00.176483+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/648d6318-57df-4fc1-a2be-59bbb4490d06", "rel": "self"}, {"href": "http://localhost/nodes/648d6318-57df-4fc1-a2be-59bbb4490d06", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/648d6318-57df-4fc1-a2be-59bbb4490d06/ports", "rel": "self"}, {"href": "http://localhost/nodes/648d6318-57df-4fc1-a2be-59bbb4490d06/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/648d6318-57df-4fc1-a2be-59bbb4490d06/states", "rel": "self"}, {"href": "http://localhost/nodes/648d6318-57df-4fc1-a2be-59bbb4490d06/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/648d6318-57df-4fc1-a2be-59bbb4490d06/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/648d6318-57df-4fc1-a2be-59bbb4490d06/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/648d6318-57df-4fc1-a2be-59bbb4490d06/volume", "rel": "self"}, {"href": "http://localhost/nodes/648d6318-57df-4fc1-a2be-59bbb4490d06/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_multi [0.075588s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?shard=shard1,shard2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-47cd537d-3ff9-4824-b2db-ac28403836dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"ports": [{"uuid": "cb850455-14e3-4742-82af-f735d39b1a15", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/cb850455-14e3-4742-82af-f735d39b1a15", "rel": "self"}, {"href": "http://localhost/ports/cb850455-14e3-4742-82af-f735d39b1a15", "rel": "bookmark"}]}, {"uuid": "7ea107e1-5338-4631-a4ab-c2b56a473bd4", "address": "ab:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/7ea107e1-5338-4631-a4ab-c2b56a473bd4", "rel": "self"}, {"href": "http://localhost/ports/7ea107e1-5338-4631-a4ab-c2b56a473bd4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported [0.088452s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-bf8129d8-87d2-4c9b-a6a6-d196be912f35
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single [0.047767s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?shard=test_shard WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ca49324c-1d4b-4748-b7ab-7bd01da086da
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"ports": [{"uuid": "a25d07ed-9ab8-42cf-95c6-c0736257fb09", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/a25d07ed-9ab8-42cf-95c6-c0736257fb09", "rel": "self"}, {"href": "http://localhost/ports/a25d07ed-9ab8-42cf-95c6-c0736257fb09", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password [0.072097s] ... 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-b64ad005-86f3-442d-9028-3f923a57ab5e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json [0.076314s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo.json GOT Response: 204 No Content
Openstack-Request-Id: req-22a5ffb3-2420-4556-b4d0-0a320630f0e7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed [0.115486s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/2aee2e85-b707-4073-9452-1422cf5ae944 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-23df5ec4-8299-45d9-be07-82c978d3f433
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"2aee2e85-b707-4073-9452-1422cf5ae944\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single_fail_api_version [0.072567s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?shard=test_shard WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-ac87c7bf-8ad1-4a1f-b790-bd21c8fce3ae
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states [0.121291s] ... 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-e8cae90e-e5a5-4d12-91be-e94168ab2d32
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 202 Accepted
Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states
Openstack-Request-Id: req-dc5eedfe-c4f3-45ae-be67-f7ce34b5e2ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 202 Accepted
Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states
Openstack-Request-Id: req-2db73b0e-eeb4-4c30-b1ba-8ee7d391b12b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 202 Accepted
Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states
Openstack-Request-Id: req-9e61edcb-f32d-42bb-b4fd-c7ea41de1b4e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode [0.076324s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 202 Accepted
Openstack-Request-Id: req-658784a5-c142-4e11-be1d-c6593f8b7256
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type [0.100714s] ... 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-b4dc133f-27cc-476e-99d0-e1afa129e77e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:00.433496+00:00", "updated_at": "2025-05-29T16:56:00.476361+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1", "network_type": "unmanaged"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name [0.072303s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo/maintenance GOT Response: 202 Accepted
Openstack-Request-Id: req-bea745c9-d090-468d-907f-59c2f06ae3b0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type_old_api [0.065880s] ... 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-48b0fd97-554c-4a17-ac34-0840689d7dfd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states [0.128830s] ... 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-301a54ff-239b-4c4a-903b-c09d302fcb20
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-745ea4cd-15a1-481e-b001-d4c9fda5b49f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-055b0d91-2aef-4b09-973e-ee820e99ca6a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-0a97e288-e407-497c-853b-117e0382448e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found [0.066701s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-0c46ac64-c7d0-4a6b-9fb0-f27904860418
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password [0.061038s] ... 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-17188c7e-98e7-4853-96cb-3861b36efe7a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name [0.057373s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-aee266cd-d07b-40f9-9dec-beda24a145ce
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi [0.136617s] ... 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-7427c121-449e-44a9-96a3-547e36097e09
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:00.590443+00:00", "updated_at": "2025-05-29T16:56:00.672882+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported [0.071030s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-aec98457-e9ab-44b3-bcbc-a7af7c195410
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource [0.053937s] ... 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-a1aa0058-e743-479c-b5ea-31bd1b75173d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource [0.102099s] ... 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-8d52ccfe-2c7a-43ec-97d4-7404053e5aaf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id [0.038022s] ... 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-cb5da99a-c965-48fd-a913-789068431500
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: port_uuid\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields [0.592976s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2f1c1edb-45eb-499e-b7b5-484bbe92b8b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "created_at": "2025-05-29T16:56:00.459663+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f8c0afc1-8c44-4639-98b5-b260347a51a9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "created_at": "2025-05-29T16:56:00.459663+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-235af7ec-f03e-42f7-89c3-237256349e0c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "created_at": "2025-05-29T16:56:00.459663+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "s
    elf"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ee836c35-6625-49d8-83ae-6f6fff5ae840
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "created_at": "2025-05-29T16:56:00.459663+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/
    1fb80a78-6aaa-40e3-9cc3-874c40343c8e WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-274f0a3c-7e8d-41cc-8bf3-902e6e775969
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "created_at": "2025-05-29T16:56:00.459663+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-84234bc1-1032-4333-a8e6-cdaf155a3bb1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "created_at": "2025-05-29T16:56:00.459663+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d0101d3d-104a-484e-a0f7-7f85b5759847
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "created_at": "2025-05-29T16:56:00.459663+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "self"}, {"href"
    : "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-55cc061d-b0b7-4d16-bb88-fa8b083cda7d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "created_at": "2025-05-29T16:56:00.459663+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "self"}, {"href": "http://localhost/nodes/1fb80a78-6aaa-40e3-9cc3-874c40343c8e/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password [0.369697s] ... 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-7b96e370-bee9-4eaf-800b-d7a67eb30ee6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"rescue_password\\\" is only valid when setting target provision state to rescue\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource [0.086873s] ... 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-5dcf0761-b96a-4dec-8573-a4ed6d219d67
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id [0.035776s] ... 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-16d03dde-61ec-43b6-97f5-4957e907520b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id [0.353856s] ... 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-ad3d4a17-79f2-49fa-80ee-8e0d35a4a765
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version [0.150361s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/107aae4f-8888-4d19-9093-f18c813a449e WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-cde8342f-fa57-4907-8744-fe73e4134083
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/107aae4f-8888-4d19-9093-f18c813a449e WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-ccb00f4c-4de3-4a5d-82e4-38a097111c77
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/107aae4f-8888-4d19-9093-f18c813a449e WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-b1d47fee-3cb1-4b6f-b44f-ead25cd16be7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/107aae4f-8888-4d19-9093-f18c813a449e WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-24acfa3e-a58b-45e3-9543-a65da0812334
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/107aae4f-8888-4d19-9093-f18c813a449e WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-a6e4740f-885e-4086-83ad-a540fae7c9a0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/107aae4f-8888-4d19-9093-f18c813a449e WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-3b7ea307-66d4-4d00-9c82-f30329c67bc5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/107aae4f-8888-4d19-9093-f18c813a449e WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-0ef79148-f1ff-4d4a-8d5b-9738d60914b7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/107aae4f-8888-4d19-9093-f18c813a449e WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-bcad6a29-090e-4157-8b71-a1d5aed1dc60
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource [0.090138s] ... 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-3d2a5979-df98-4509-967f-024ba3db2dd1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid [0.105348s] ... 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-28b5f16f-4206-42a7-a520-2f44638c9fc3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:01.088475+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_associated_nodes_error [0.049707s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=blah WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b1f42db0-0647-4c73-8ba6-7aa86029a23c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid associated: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states [0.259530s] ... 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-f369d540-81a0-4aa9-818a-8a42079e347d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 202 Accepted
Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states
Openstack-Request-Id: req-de9a4ac7-0f82-4e38-8fb3-f50a462b35ab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 202 Accepted
Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states
Openstack-Request-Id: req-e5c2c503-ccbd-42cb-b65b-4a5ae7e832c5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee [0.139068s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/b4a2ddfb-d53f-41e0-8df2-aa4f736c815d WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-47cd076c-e148-434b-b2be-8d86ab1a5700
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "b4a2ddfb-d53f-41e0-8df2-aa4f736c815d", "created_at": "2025-05-29T16:56:01.166800+00:00", "updated_at": null, "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/b4a2ddfb-d53f-41e0-8df2-aa4f736c815d", "rel": "self"}, {"href": "http://localhost/nodes/b4a2ddfb-d53f-41e0-8df2-aa4f736c815d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b4a2ddfb-d53f-41e0-8df2-aa4f736c815d/ports", "rel": "self"}, {"href": "http://localhost/nodes/b4a2ddfb-d53f-41e0-8df2-aa4f736c815d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b4a2ddfb-d53f-41e0-8df2-aa4f736c815d/states", "rel": "self"}, {"href": "http://localhost/nodes/b4a2ddfb-d53f-41e0-8df2-aa4f736c815d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b4a2ddfb-d53f-41e0-8df2-aa4f736c815d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b4a2ddfb-d53f-41e0-8df2-aa4f736c815d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b4a2ddfb-d53f-41e0-8df2-aa4f736c815d/volume", "rel": "self"}, {"href": "http://localhost/nodes/b4a2ddfb-d53f-41e0-8df2-aa4f736c815d/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network [0.135386s] ... 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-cd229c19-bf3a-4c73-8dc9-1f2b6f2ecdc3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:01.192839+00:00", "updated_at": "2025-05-29T16:56:01.274968+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet1", "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive [0.147752s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d070dc85-b363-4fdf-9873-fe0f13dae6ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "a89de2fc-be7e-4f98-af3a-5c8728b87fd5", "instance_uuid": "9d216055-bcec-4c05-a26b-9ccb471d700b", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a89de2fc-be7e-4f98-af3a-5c8728b87fd5", "rel": "self"}, {"href": "http://localhost/nodes/a89de2fc-be7e-4f98-af3a-5c8728b87fd5", "rel": "bookmark"}]}, {"uuid": "4e76e32f-c484-44f6-b89a-dda87a051f02", "instance_uuid": "3dbe7d26-1eb8-4767-b7de-c2e21485ae95", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/4e76e32f-c484-44f6-b89a-dda87a051f02", "rel": "self"}, {"href": "http://localhost/nodes/4e76e32f-c484-44f6-b89a-dda87a051f02", "rel": "bookmark"}]}, {"uuid": "0e2d1051-5968-4913-a497-3d7c492de201", "instance_uuid": "1bfdac6e-6377-4e2b-9e29-fc884c3ee29d", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0e2d1051-5968-4913-a497-3d7c492de201", "rel": "self"}, {"href": "http://localhost/nodes/0e2d1051-5968-4913-a497-3d7c492de201", "rel": "bookmark"}]}, {"uuid": "5f93a58e-0d50-4cb3-85ad-27373212735f", "instance_uuid": "4fae9d6e-f174-4941-95a2-5c2d7dc02a3e", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5f93a58e-0d50-4cb3-85ad-27373212735f", "rel": "self"}, {"href": "http://localhost/nodes/5f93a58e-0d50-4cb3-85ad-27373212735f", "rel": "bookmark"}]}]}
GET /v1/nodes?associated=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cbcb794c-c7ea-404a-b96a-a7896e9624ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "a89de2fc-be7e-4f98-af3a-5c8728b87fd5", "instance_uuid": "9d216055-bcec-4c05-a26b-9ccb471d700b", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a89de2fc-be7e-4f98-af3a-5c8728b87fd5", "rel": "self"}, {"href": "http://localhost/nodes/a89de2fc-be7e-4f98-af3a-5c8728b87fd5", "rel": "bookmark"}]}, {"uuid": "4e76e32f-c484-44f6-b89a-dda87a051f02", "instance_uuid": "3dbe7d26-1eb8-4767-b7de-c2e21485ae95", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/4e76e32f-c484-44f6-b89a-dda87a051f02", "rel": "self"}, {"href": "http://localhost/nodes/4e76e32f-c484-44f6-b89a-dda87a051f02", "rel": "bookmark"}]}, {"uuid": "0e2d1051-5968-4913-a497-3d7c492de201", "instance_uuid": "1bfdac6e-6377-4e2b-9e29-fc884c3ee29d", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0e2d1051-5968-4913-a497-3d7c492de201", "rel": "self"}, {"href": "http://localhost/nodes/0e2d1051-5968-4913-a497-3d7c492de201", "rel": "bookmark"}]}, {"uuid": "5f93a58e-0d50-4cb3-85ad-27373212735f", "instance_uuid": "4fae9d6e-f174-4941-95a2-5c2d7dc02a3e", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5f93a58e-0d50-4cb3-85ad-27373212735f", "rel": "self"}, {"href": "http://localhost/nodes/5f93a58e-0d50-4cb3-85ad-27373212735f", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version [0.057410s] ... 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-fe14653b-fdac-4caa-99f2-3d70903b672a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee_old_api [0.107561s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/361c32dd-17fe-43ba-939c-ec5c8b1f3d11 WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-e4d7309d-25e1-45e7-971e-b4d8aec221c3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links [0.073119s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-32ebeadd-4cf8-4e50-bfa5-1ce2fe1251af
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "ea155ec5-eaea-42e7-b363-69888033a366", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ea155ec5-eaea-42e7-b363-69888033a366", "rel": "self"}, {"href": "http://localhost/nodes/ea155ec5-eaea-42e7-b363-69888033a366", "rel": "bookmark"}]}, {"uuid": "43a6f39f-aa7a-4bc0-850f-d2a17a1179b7", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/43a6f39f-aa7a-4bc0-850f-d2a17a1179b7", "rel": "self"}, {"href": "http://localhost/nodes/43a6f39f-aa7a-4bc0-850f-d2a17a1179b7", "rel": "bookmark"}]}, {"uuid": "f8fa06b9-13ed-4910-97bf-06e28a83c9fd", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/f8fa06b9-13ed-4910-97bf-06e28a83c9fd", "rel": "self"}, {"href": "http://localhost/nodes/f8fa06b9-13ed-4910-97bf-06e28a83c9fd", "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=f8fa06b9-13ed-4910-97bf-06e28a83c9fd"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade [0.080604s] ... 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-44e6e4a9-2a80-4574-84d4-df0b0e581b8e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields [0.054249s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fields=driver_info,uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fbd7b0da-4e05-49f0-a203-09c1f3ee6312
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "7997fe59-c4b3-4d40-adb9-2b95a8d6c9d3", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/7997fe59-c4b3-4d40-adb9-2b95a8d6c9d3", "rel": "self"}, {"href": "http://localhost/nodes/7997fe59-c4b3-4d40-adb9-2b95a8d6c9d3", "rel": "bookmark"}]}, {"uuid": "a1f8f8e1-ae45-4da5-9bb7-768374b58d6e", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/a1f8f8e1-ae45-4da5-9bb7-768374b58d6e", "rel": "self"}, {"href": "http://localhost/nodes/a1f8f8e1-ae45-4da5-9bb7-768374b58d6e", "rel": "bookmark"}]}, {"uuid": "0f93847c-853c-47a7-86ef-ce56dd675f25", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/0f93847c-853c-47a7-86ef-ce56dd675f25", "rel": "self"}, {"href": "http://localhost/nodes/0f93847c-853c-47a7-86ef-ce56dd675f25", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=0f93847c-853c-47a7-86ef-ce56dd675f25"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states [0.263736s] ... 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-331bfce0-fc83-4854-aea8-ec15bd2cc9da
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-937c3fd7-93b6-4342-a2fc-dba081dbd4e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-0a05450f-7295-4ae9-b02f-f5c0f7abdc85
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-564f52b9-fc9b-491d-91ef-c97c69580528
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-debd512e-fec9-4da7-b25c-6092f8546df0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid [0.132257s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '4de27c95-c0ea-4c4f-89c0-4893c2f44625', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ea7722e7-f35e-4a74-811b-6abcb186b7db
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:01.456895+00:00", "updated_at": "2025-05-29T16:56:01.552974+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": "4de27c95-c0ea-4c4f-89c0-4893c2f44625"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean [0.063205s] ... 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-af01a0fd-5579-4cc0-88bd-efbeafcc5cba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.4
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected types <class 'NoneType'>, <class 'list'> for clean_steps: foo\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data [0.221387s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/bffb9cc5-65a1-44a9-af05-9684b2b891d8 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-dcb63d5b-cad8-4ead-9ec3-05d787996a0c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"uuid": "bffb9cc5-65a1-44a9-af05-9684b2b891d8", "created_at": "2025-05-29T16:56:01.465461+00:00", "updated_at": null, "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/bffb9cc5-65a1-44a9-af05-9684b2b891d8", "rel": "self"}, {"href": "http://localhost/nodes/bffb9cc5-65a1-44a9-af05-9684b2b891d8", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/bffb9cc5-65a1-44a9-af05-9684b2b891d8/ports", "rel": "self"}, {"href": "http://localhost/nodes/bffb9cc5-65a1-44a9-af05-9684b2b891d8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/bffb9cc5-65a1-44a9-af05
    -9684b2b891d8/states", "rel": "self"}, {"href": "http://localhost/nodes/bffb9cc5-65a1-44a9-af05-9684b2b891d8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/bffb9cc5-65a1-44a9-af05-9684b2b891d8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/bffb9cc5-65a1-44a9-af05-9684b2b891d8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/bffb9cc5-65a1-44a9-af05-9684b2b891d8/volume", "rel": "self"}, {"href": "http://localhost/nodes/bffb9cc5-65a1-44a9-af05-9684b2b891d8/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit [0.135992s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8a856e26-a176-4f7b-ab21-1a015281f515
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "305b28ad-1ef6-47df-adff-bff5114d1bab", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/305b28ad-1ef6-47df-adff-bff5114d1bab", "rel": "self"}, {"href": "http://localhost/nodes/305b28ad-1ef6-47df-adff-bff5114d1bab", "rel": "bookmark"}]}, {"uuid": "8dac7e8e-1d7e-4437-85f8-4cd6decf680d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/8dac7e8e-1d7e-4437-85f8-4cd6decf680d", "rel": "self"}, {"href": "http://localhost/nodes/8dac7e8e-1d7e-4437-85f8-4cd6decf680d", "rel": "bookmark"}]}, {"uuid": "41980f1e-b1a6-4c1f-9e02-6c73d1228a20", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/41980f1e-b1a6-4c1f-9e02-6c73d1228a20", "rel": "self"}, {"href": "http://localhost/nodes/41980f1e-b1a6-4c1f-9e02-6c73d1228a20", "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=41980f1e-b1a6-4c1f-9e02-6c73d1228a20"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root [0.087772s] ... 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-e29e19ce-4464-4358-bc3b-faf12bb25c84
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:01.599221+00:00", "updated_at": "2025-05-29T16:56:01.644559+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active [0.068726s] ... 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-7a2a3123-d94b-4c21-8dc5-f5e6d2143ed4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent [0.047760s] ... 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-2e509720-0a37-4913-80f3-5cd556393d2b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param [0.107853s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?instance_uuid=807026e3-7ccd-462a-9f41-aab5f7daa51b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dcf3a9e8-d55e-441b-9848-88871e96e8cd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "e7cbd1fe-b4b8-4569-9e93-de3b34e18185", "instance_uuid": "807026e3-7ccd-462a-9f41-aab5f7daa51b", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e7cbd1fe-b4b8-4569-9e93-de3b34e18185", "rel": "self"}, {"href": "http://localhost/nodes/e7cbd1fe-b4b8-4569-9e93-de3b34e18185", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_custom [0.127413s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/0040fe74-6106-4448-8e4a-edb0fd4cd6e3 WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cda784c8-681d-4d41-8d08-54b27172f32e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"uuid": "0040fe74-6106-4448-8e4a-edb0fd4cd6e3", "created_at": "2025-05-29T16:56:01.661168+00:00", "updated_at": null, "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/0040fe74-6106-4448-8e4a-edb0fd4cd6e3", "rel": "self"}, {"href": "http://localhost/nodes/0040fe74-6106-4448-8e4a-edb0fd4cd6e3", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0040fe74-6106-4448-8e4a-edb0fd4cd6e3/ports", "rel": "self"}, {"href": "http://localhost/nodes/0040fe74-6106-4448-8e4a-edb0fd4cd6e3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0040fe74-6106-4448-8e4a-edb0fd4cd6e3/states", "rel": "self"}, {"href": "http://localhost/nodes/0040fe74-6106-4448-8e4a-edb0fd4cd6e3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0040fe74-6106-4448-8e4a-edb0fd4cd6e3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0040fe74-6106-4448-8e4a-edb0fd4cd6e3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0040fe74-6106-4448-8e4a-edb0fd4cd6e3/volume", "rel": "self"}, {"href": "http://localhost/nodes/0040fe74-6106-4448-8e4a-edb0fd4cd6e3/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy [0.086711s] ... 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-9cbe46c7-b38a-47c2-b739-6c77ceeaf528
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_old_api [0.080319s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/712bae49-5bb1-4216-9f4f-57da8b5ebc88 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-3430d1ec-800b-4ac1-8207-378c221a4542
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.62
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail [0.146900s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1455aa0d-29a0-4551-9fa9-e3f7a7ec562e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:01.784180+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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_port.TestPatch.test_invalid_physnet_empty_string [0.179797s] ... 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-07c640bc-1b88-486c-929c-4f46c87efd3b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_wrong_format [0.113193s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/979b5383-0d3d-435e-b3a5-8a32b549413a WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ba3b158b-0b22-419a-975d-e86c56f9fd29
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid network_data: 'links' is a required property \", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail [0.205078s] ... 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-3f1c6f15-c2de-4da8-aad7-7547c03c7e99
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single [0.150447s] ... 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-b755c2af-b681-4de4-82be-22fd35833782
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text [0.183164s] ... 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-61eabc52-3ba9-4a5b-90c6-9fbdf8d89419
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface [0.167406s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/7d87b6ef-3897-4572-be37-50eb48ab060a WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6d09e6b5-6fc2-47fb-83b2-86bd9191f92b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "7d87b6ef-3897-4572-be37-50eb48ab060a", "created_at": "2025-05-29T16:56:01.989970+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/7d87b6ef-3897-4572-be37-50eb48ab060a", "rel": "self"}, {"href": "http://localhost/nodes/7d87b6ef-3897-4572-be37-50eb48ab060a", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7d87b6ef-3897-4572-be37-50eb48ab060a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d87b6ef-3897-4572-be37-50eb48ab060a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d87b6ef-3897-4572-be37-50eb48ab060a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d87b6ef-3897-4572-be37-50eb48ab060a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d87b6ef-3897-4572-be37-50eb48ab060a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d87b6ef-3897-4572-be37-50eb48ab060a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d87b6ef-3897-4572-be37-50eb48ab060a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d87b6ef-3897-4572-be37-50eb48ab060a/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_forbidden [0.084565s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c61b271f-1563-47a5-a278-0012605139ff
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive [0.159539s] ... 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-3efd4b4d-f850-4284-8d0d-cd6fc71188a6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict [0.078875s] ... 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-6ec0696c-965e-492a-a3a6-35191fc100ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.56
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api [0.101482s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/a1221389-11e0-4ff2-a0f6-443c9dbf9146 WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-3a5794a7-de80-4348-8879-087c5da590ee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid [0.143984s] ... 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-727d947a-fba7-4c7b-8423-be7ea198db96
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:02.176939+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long [0.185833s] ... 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-69e124f6-2fbe-4306-9d28-a5499d7cd557
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields [0.071353s] ... 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-24d5504f-6bbb-44c0-a593-f6d9427e2c98
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch [0.081226s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/eafd38ee-d5ea-4b96-8a93-890ce8218cd1 WITH [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-18f99f51-b558-424f-b19a-30cb0fe84cae
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok [0.148360s] ... 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-7ee090fb-243a-45d9-9597-54eb8ea62bf8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:02.227026+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_invalid_type [0.081837s] ... 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-7719744f-bbea-4d6d-8584-7979f6ef2f66
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected types <class 'NoneType'>, <class 'dict'>, <class 'str'> for configdrive: ['aabb']\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type [0.134839s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/fbabe2f2-e0e9-4734-acab-4bbe3676d322 WITH [{'path': '/local_link_connection/network_type', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b2bf1bbe-707a-4953-9dec-7ffd21d3f3b4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"uuid": "fbabe2f2-e0e9-4734-acab-4bbe3676d322", "created_at": "2025-05-29T16:56:02.402351+00:00", "updated_at": "2025-05-29T16:56:02.460438+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/fbabe2f2-e0e9-4734-acab-4bbe3676d322", "rel": "self"}, {"href": "http://localhost/ports/fbabe2f2-e0e9-4734-acab-4bbe3676d322", "rel": "bookmark"}], "portgroup_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_not_base64 [0.127949s] ... 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-7aab46c1-43d5-4745-aff2-296678f47569
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid configdrive format: it is neither a JSON, nor a URL, nor a base64 string\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_match [0.319021s] ... 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-6e5858d5-3651-454d-844c-c7eda8399cf8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:02.527753+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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_port.TestPatch.test_remove_local_link_connection_network_type_old_api [0.090498s] ... 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-69f67081-6718-4ea7-afe5-6f66b7de4fe7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_url [0.097942s] ... 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-a88e5f77-3111-41b9-aefb-aef0a13b2a8b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api [0.051433s] ... 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-5b2af3e5-cbd0-452a-bf33-0246dd5cf89a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_not_match [0.064777s] ... 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-6a259e99-5fc2-4f62-9f96-354f4afebfef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": []}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps [0.071965s] ... 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-77f1d71d-3078-4c30-baba-0c0bac645bd2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future.
  cls = validator_for(schema)
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field [0.062142s] ... 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-1f95028b-8f52-4c19-9315-7f1d12c2696f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'address' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbid_project_mismatch [0.072594s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?project=54321 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-77db8ed0-8f7c-4fb4-9cad-1e49ccb546dd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail [0.077958s] ... 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-f59721f6-8f6b-4ee9-a492-23f22bf221e9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.69\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild [0.079201s] ... 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-47d699ea-9be7-41b0-834b-9c1d0722f06e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name [0.464385s] ... 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-f0af326c-8aca-4b93-bf94-7b77b82554db
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:02.457348+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"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi [0.158943s] ... 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-85d229d0-24b9-47f2-84b1-6c97180342bb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:02.709133+00:00", "updated_at": "2025-05-29T16:56:02.776758+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-67a68ed1-30c4-433a-a900-f6f41c29c789
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:02.709133+00:00", "updated_at": "2025-05-29T16:56:02.824902+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden [0.164557s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f400043e-7cb5-480d-a102-a6ddafa51072
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "ff746a92-2789-4685-a70b-d24672ea72da", "created_at": "2025-05-29T16:56:02.786980+00:00", "updated_at": null, "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/ff746a92-2789-4685-a70b-d24672ea72da", "rel": "self"}, {"href": "http://localhost/nodes/ff746a92-2789-4685-a70b-d24672ea72da", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ff746a92-2789-4685-a70b-d24672ea72da/ports", "rel": "self"}, {"href": "http://localhost/nodes/ff746a92-2789-4685-a70b-d24672ea72da/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ff746a92-2789-4685-a70b-d24672ea72da/states", "rel": "self"}, {"href": "http://localhost/nodes/ff746a92-2789-4685-a70b-d24672ea72da/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ff746a92-2789-4685-a70b-d24672ea72da/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ff746a92-2789-4685-a70b-d24672ea72da/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ff746a92-2789-4685-a70b-d24672ea72da/volume", "rel": "self"}, {"href": "http://localhost/nodes/ff746a92-2789-4685-a70b-d24672ea72da/volume", "rel": "bookmark"}]}, {"uuid": "e98929e5-2e89-4812-a858-3d1f8e094678", "created_at": "2025-05-29T16:56:02.794113+00:00", "updated_at": null, "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/e98929e5-2e89-4812-a858-3d1f8e094678", "rel": "self"}, {"href": "http://localhost/nodes/e98929e5-2e89-4812-a858-3d1f8e094678", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e98929e5-2e89-4812-a858-3d1f8e094678/ports", "rel": "self"}, {"href": "http://localhost/nodes/e98929e5-2e89-4812-a858-3d1f8e094678/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e98929e5-2e89-4812-a858-3d1f8e094678/states", "rel": "self"}, {"href": "http://localhost/nodes/e98929e5-2e89-4812-a858-3d1f8e094678/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e98929e5-2e89-4812-a858-3d1f8e094678/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e98929e5-2e89-4812-a858-3d1f8e094678/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e98929e5-2e89-4812-a858-3d1f8e094678/volume", "rel": "self"}, {"href": "http://localhost/nodes/e98929e5-2e89-4812-a858-3d1f8e094678/volume", "rel": "bookmark"}]}, {"uuid": "058b4e5d-e585-413b-baa3-6415c90efb13", "created_at": "2025-05-29T16:56:02.796070+00:00", "updated_at": null, "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/058b4e5d-e585-413b-baa3-6415c90efb13", "rel": "self"}, {"href": "http://localhost/nodes/058b4e5d-e585-413b-baa3-6415c90efb13", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/058b4e5d-e585-413b-baa3-6415c90efb13/ports", "rel": "self"}, {"href": "http://localhost/nodes/058b4e5d-e585-413b-baa3-6415c90efb13/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/058b4e5d-e585-413b-baa3-6415c90efb13/states", "rel": "self"}, {"href": "http://localhost/nodes/058b4e5d-e585-413b-baa3-6415c90efb13/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/058b4e5d-e585-413b-baa3-6415c90efb13/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/058b4e5d-e585-413b-baa3-6415c90efb13/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/058b4e5d-e585-413b-baa3-6415c90efb13/volume", "rel": "self"}, {"href": "http://localhost/nodes/058b4e5d-e585-413b-baa3-6415c90efb13/volume", "rel": "bookmark"}]}, {"uuid": "b0e4cea6-e38a-4598-b9a6-f21cd682c3bf", "created_at": "2025-05-29T16:56:02.797680+00:00", "updated_at": null, "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/b0e4cea6-e38a-4598-b9a6-f21cd682c3bf", "rel": "self"}, {"href": "http://localhost/nodes/b0e4cea6-e38a-4598-b9a6-f21cd682c3bf", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b0e4cea6-e38a-4598-b9a6-f21cd682c3bf/ports", "rel": "self"}, {"href": "http://localhost/nodes/b0e4cea6-e38a-4598-b9a6-f21cd682c3bf/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b0e4cea6-e38a-4598-b9a6-f21cd682c3bf/states", "rel": "self"}, {"href": "http://localhost/nodes/b0e4cea6-e38a-4598-b9a6-f21cd682c3bf/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b0e4cea6-e38a-4598-b9a6-f21cd682c3bf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b0e4cea6-e38a-4598-b9a6-f21cd682c3bf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b0e4cea6-e38a-4598-b9a6-f21cd682c3bf/volume", "rel": "self"}, {"href": "http://localhost/nodes/b0e4cea6-e38a-4598-b9a6-f21cd682c3bf/volume", "rel": "bookmark"}]}, {"uuid": "9573f0f2-9d8c-42af-be1d-c3637476fbe8", "created_at": "2025-05-29T16:56:02.816048+00:00", "updated_at": null, "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/9573f0f2-9d8c-42af-be1d-c3637476fbe8", "rel": "self"}, {"href": "http://localhost/nodes/9573f0f2-9d8c-42af-be1d-c3637476fbe8", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9573f0f2-9d8c-42af-be1d-c3637476fbe8/ports", "rel": 
    "self"}, {"href": "http://localhost/nodes/9573f0f2-9d8c-42af-be1d-c3637476fbe8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9573f0f2-9d8c-42af-be1d-c3637476fbe8/states", "rel": "self"}, {"href": "http://localhost/nodes/9573f0f2-9d8c-42af-be1d-c3637476fbe8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9573f0f2-9d8c-42af-be1d-c3637476fbe8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9573f0f2-9d8c-42af-be1d-c3637476fbe8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9573f0f2-9d8c-42af-be1d-c3637476fbe8/volume", "rel": "self"}, {"href": "http://localhost/nodes/9573f0f2-9d8c-42af-be1d-c3637476fbe8/volume", "rel": "bookmark"}]}, {"uuid": "709b45ff-5bc4-424c-b056-20445145b18c", "created_at": "2025-05-29T16:56:02.817981+00:00", "updated_at": null, "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/709b45ff-5bc4-424c-b056-20445145b18c", "rel": "self"}, {"href": "http://localhost/nodes/709b45ff-5bc4-424c-b056-20445145b18c", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/709b45ff-5bc4-424c-b056-20445145b18c/ports", "rel": "self"}, {"href": "http://localhost/nodes/709b45ff-5bc4-424c-b056-20445145b18c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/709b45ff-5bc4-424c-b056-20445145b18c/states", "rel": "self"}, {"href": "http://localhost/nodes/709b45ff-5bc4-424c-b056-20445145b18c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/709b45ff-5bc4-424c-b056-20445145b18c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/709b45ff-5bc4-424c-b056-20445145b18c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/709b45ff-5bc4-424c-b056-20445145b18c/volume", "rel": "self"}, {"href": "http://localhost/nodes/709b45ff-5bc4-424c-b056-20445145b18c/volume", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive [0.098811s] ... 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-8ad8a7ac-4b2c-4c80-850b-751d5082c79f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.35
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id [0.075272s] ... 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-59521ec9-7443-4755-93aa-03c07f65e3a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden_no_project [0.066570s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0b46ee58-489a-43e5-bdfa-aa05f10383ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail [0.064869s] ... 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-eaf3c9e4-6db5-445a-8804-e79df7e67a71
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps [0.091311s] ... 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-4fe8df16-9ab8-417a-a8f0-627810f4fbd6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future.
  cls = validator_for(schema)
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json [0.221781s] ... 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-338510dd-ffe9-4b9e-84db-6d305de2eb06
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:02.869109+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"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network [0.081772s] ... 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-76ba0f03-009c-4fef-9a91-fdbaefc4f25e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:03.008164+00:00", "updated_at": "2025-05-29T16:56:03.049137+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_detail_query_false [0.104481s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-120c9839-0077-4155-9ee4-52bd3603cac1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
GET /v1/nodes?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5570e78a-4d47-422e-9af6-5c8e99e84f1b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version [0.076642s] ... 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-1f6ac56a-4e54-4832-a14b-ae591f36165e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade [0.054586s] ... 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-25d49d4f-483e-464a-a2b7-4f2c91ddd094
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_snmpv3 [0.119056s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b15e53fe-6563-430b-ae1b-30e72d3fe8b5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:03.151547+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"snmp_version": 3, "snmp_user": "test-user", "snmp_auth_protocol": "sha", "snmp_auth_key": "******", "snmp_priv_protocol": "aes", "snmp_priv_key": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid [0.084741s] ... 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-dca66480-7c83-47f6-8d13-52a56bc5d910
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed [0.127194s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?sort_key=resource_class WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f70d6ad2-21c3-4575-8218-d5b7428a7810
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "df732501-d2bb-4184-8483-c6bc055c6f64", "created_at": "2025-05-29T16:56:03.285865+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/df732501-d2bb-4184-8483-c6bc055c6f64", "rel": "self"}, {"href": "http://localhost/nodes/df732501-d2bb-4184-8483-c6bc055c6f64", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/df732501-d2bb-4184-8483-c6bc055c6f64/ports", "rel": "self"}, {"href": "http://localhost/nodes/df732501-d2bb-4184-8483-c6bc055c6f64/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/df732501-d2bb-4184-8483-c6bc055c6f64/states", "rel": "self"}, {"href": "http://localhost/nodes/df732501-d2bb-4184-8483-c6bc055c6f64/states", "rel": "bookmark"}]}, {"uuid": "e3d9a4e0-5b32-4886-8754-a12dc14e4a19", "created_at": "2025-05-29T16:56:03.280682+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/e3d9a4e0-5b32-4886-8754-a12dc14e4a19", "rel": "self"}, {"href": "http://localhost/nodes/e3d9a4e0-5b32-4886-8754-a12dc14e4a19", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e3d9a4e0-5b32-4886-8754-a12dc14e4a19/ports", "rel": "self"}, {"href": "http://localhost/nodes/e3d9a4e0-5b32-4886-8754-a12dc14e4a19/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e3d9a4e0-5b32-4886-8754-a12dc14e4a19/states", "rel": "self"}, {"href": "http://localhost/nodes/e3d9a4e0-5b32-4886-8754-a12dc14e4a19/states", "rel": "bookmark"}]}, {"uuid": "76f64f8c-f352-42f4-bbbe-e93e255fe59c", "created_at": "2025-05-29T16:56:03.266900+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/76f64f8c-f352-42f4-bbbe-e93e255fe59c", "rel": "self"}, {"href": "http://localhost/nodes/76f64f8c-f352-42f4-bbbe-e93e255fe59c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/76f64f8c-f352-42f4-bbbe-e93e255fe59c/ports", "rel": "self"}, {"href": "http://localhost/nodes/76f64f8c-f352-42f4-bbbe-e93e255fe59c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/76f64f8c-f352-42f4-bbbe-e93e255fe59c/states", "rel": "self"}, {"href": "http://localhost/nodes/76f64f8c-f352-42f4-bbbe-e93e255fe59c/states", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist [0.105055s] ... 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-1e82d9f8-7245-4ada-a8e4-a9bb1c64c2c9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive [0.412623s] ... 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-eb917431-00d3-4158-9d2a-854fdd5322a2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a config drive is only supported when setting provision state to active\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed [0.090660s] ... 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-d397de06-73b4-484b-9164-9e33ebfa2441
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down [0.064343s] ... 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-e9555c69-1f4f-4948-925d-3ac2bcfe7a7b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection [0.104598s] ... 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-08586675-b3e3-40c9-a084-18c8fdc889e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.19
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:03.430161+00:00", "updated_at": "2025-05-29T16:56:03.478298+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query [0.108958s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4b966a31-2701-4483-b36c-d1657decdeaf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:03.496182+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait [0.092789s] ... 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-534cc7c8-6b49-4e0a-8c18-a8b353a2cca2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi [0.116452s] ... 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-29f1d778-aaaf-426f-8f96-434d02bb561b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:03.553416+00:00", "updated_at": "2025-05-29T16:56:03.598539+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_undeploy [0.050672s] ... 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-8096c299-9caf-4320-a44d-db71afc6923b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields [0.094179s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?detail=True&fields=name WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-a36bc816-00e3-411f-8dbf-0806023ca52d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner [0.655947s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/96627193-1c07-40f7-8071-fb12056e00ce WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-34b48f4c-d296-4f48-8cba-7490be30c009
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "96627193-1c07-40f7-8071-fb12056e00ce", "created_at": "2025-05-29T16:56:03.594998+00:00", "updated_at": null, "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/96627193-1c07-40f7-8071-fb12056e00ce", "rel": "self"}, {"href": "http://localhost/nodes/96627193-1c07-40f7-8071-fb12056e00ce", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/96627193-1c07-40f7-8071-fb12056e00ce/ports", "rel": "self"}, {"href": "http://localhost/nodes/96627193-1c07-40f7-8071-fb12056e00ce/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/96627193-1c07-40f7-8071-fb12056e00ce/states", "rel": "self"}, {"href": "http://localhost/nodes/96627193-1c07-40f7-8071-fb12056e00ce/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/96627193-1c07-40f7-8071-fb12056e00ce/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/96627193-1c07-40f7-8071-fb12056e00ce/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/96627193-1c07-40f7-8071-fb12056e00ce/volume", "rel": "self"}, {"href": "http://localhost/nodes/96627193-1c07-40f7-8071-fb12056e00ce/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_unprovision_after_service_failed [0.075689s] ... 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-43263698-c1c6-435c-a7d9-ab826cb5111c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields [0.071049s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?detail=False&fields=name WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-78a7da22-74bf-4dcf-a04a-c7bba196008c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id [0.124242s] ... 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-4b57a51d-f290-487f-8154-ecdf4664476c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version [0.050233s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?detail=True WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c9d026ec-1fc2-432e-af0d-f270bf6b0521
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid [0.082417s] ... 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-6bd2b3b7-432b-451b-bedf-74e665fd6c5f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported [0.054261s] ... 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-774eaf15-c344-4e0d-8df1-8347cb4c2e1a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter [0.075849s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?associated=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-79d31a92-5d2b-4a9c-b871-11a0bdf525dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "e9507a20-b105-4286-93cc-aa993c3e2105", "created_at": "2025-05-29T16:56:03.797086+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "5a4b75f0-ec69-411c-b908-e9f7aed08c2c", "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/e9507a20-b105-4286-93cc-aa993c3e2105", "rel": "self"}, {"href": "http://localhost/nodes/e9507a20-b105-4286-93cc-aa993c3e2105", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e9507a20-b105-4286-93cc-aa993c3e2105/ports", "rel": "self"}, {"href": "http://localhost/nodes/e9507a20-b105-4286-93cc-aa993c3e2105/ports", "rel": "bookmark"}]}, {"uuid": "7c52041a-12cb-4b78-afa5-a3aba37d01c7", "created_at": "2025-05-29T16:56:03.798945+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "72c52613-2b77-42d3-841f-990b6d5db30e", "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/7c52041a-12cb-4b78-afa5-a3aba37d01c7", "rel": "self"}, {"href": "http://localhost/nodes/7c52041a-12cb-4b78-afa5-a3aba37d01c7", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7c52041a-12cb-4b78-afa5-a3aba37d01c7/ports", "rel": "self"}, {"href": "http://localhost/nodes/7c52041a-12cb-4b78-afa5-a3aba37d01c7/ports", "rel": "bookmark"}]}, {"uuid": "09462d1d-8f32-4573-8859-d32c6558a9d3", "created_at": "2025-05-29T16:56:03.800710+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "0d3c05cd-50be-4101-a1c8-0245a6300e53", "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/09462d1d-8f32-4573-8859-d32c6558a9d3", "rel": "self"}, {"href": "http://localhost/nodes/09462d1d-8f32-4573-8859-d32c6558a9d3", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/09462d1d-8f32-4573-8859-d32c6558a9d3/ports", "rel": "self"}, {"href": "http://localhost/nodes/09462d1d-8f32-4573-8859-d32c6558a9d3/ports", "rel": "bookmark"}]}, {"uuid": "b2256bbe-f237-47f1-8aa6-49a639a6af6d", "created_at": "2025-05-29T16:56:03.802876+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "2526923b-bc24-4cf6-bd2f-7d57d292d248", "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/b2256bbe-f237-47f1-8aa6-49a639a6af6d", "rel": "self"}, {"href": "http://localhost/nodes/b2256bbe-f237-47f1-8aa6-49a639a6af6d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b2256bbe-f237-47f1-8aa6-49a639a6af6d/ports", "rel": "self"}, {"href": "http://localhost/nodes/b2256bbe-f237-47f1-8aa6-49a639a6af6d/ports", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid [0.062156s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?instance_uuid=75c91591-bd0b-4b49-af4a-2d71fdae5e94 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a7bb6184-ab81-4a2f-9c23-851d122d15dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "37bb6e10-6a34-47bb-ae38-cd2a31a8221c", "created_at": "2025-05-29T16:56:03.878152+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "75c91591-bd0b-4b49-af4a-2d71fdae5e94", "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/37bb6e10-6a34-47bb-ae38-cd2a31a8221c", "rel": "self"}, {"href": "http://localhost/nodes/37bb6e10-6a34-47bb-ae38-cd2a31a8221c", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/37bb6e10-6a34-47bb-ae38-cd2a31a8221c/ports", "rel": "self"}, {"href": "http://localhost/nodes/37bb6e10-6a34-47bb-ae38-cd2a31a8221c/ports", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value [0.078936s] ... 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-0aa4f973-ac4e-4a29-9f1f-59696225ed1b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"foo\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid [0.198098s] ... 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-0a4e36d8-5682-43c4-8ceb-ebcf78677990
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:03.788394+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_empty [0.049412s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cde9f159-2e01-4238-bc44-36b74c4ac953
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": []}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version [0.089043s] ... 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-c31cdda1-2d73-457e-ba2c-5690ce74f839
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation [0.311816s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/21080088-5b26-4f4c-8b67-b7c8c0e1a496 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0ab9370c-111a-4d5b-9d26-a99c1eb39ab7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "21080088-5b26-4f4c-8b67-b7c8c0e1a496", "created_at": "2025-05-29T16:56:03.766565+00:00", "updated_at": null, "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/21080088-5b26-4f4c-8b67-b7c8c0e1a496", "rel": "self"}, {"href": "http://localhost/nodes/21080088-5b26-4f4c-8b67-b7c8c0e1a496", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/21080088-5b26-4f4c-8b67-b7c8c0e1a496/ports", "rel": "self"}, {"href": "http://localhost/nodes/21080088-5b26-4f4c-8b67-b7c8c0e1a496/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/21080088-5b26-4f4c-8b67-b7c8c0e1a496/states", "rel": "self"}, {"href": "http://localhost/nodes/21080088-5b26-4f4c-8b67-b7c8c0e1a496/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/21080088-5b26-4f4c-8b67-b7c8c0e1a496/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/21080088-5b26-4f4c-8b67-b7c8c0e1a496/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/21080088-5b26-4f4c-8b67-b7c8c0e1a496/volume", "rel": "self"}, {"href": "http://localhost/nodes/21080088-5b26-4f4c-8b67-b7c8c0e1a496/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields [0.060279s] ... 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-9f7c76a5-790c-4240-870a-9eb29e20472b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "power_interface": null, "raid_interface": null, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid [0.101287s] ... 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-f2607728-c6e0-47b5-996d-9c6bc8f16927
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 [0.061647s] ... 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-6eccab38-d350-460f-a259-e96e1e12efa5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version [0.054812s] ... 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-30b89ca7-9630-4bb6-be09-6b62d62a44b4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_None [0.060233s] ... 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-a7b0601a-4305-43e6-a048-6c5c40aced78
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid secure_boot None requested for node. Allowed secure_boot states are: True, False) \", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields [0.066747s] ... 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-7a4836e7-8845-4f16-b6ab-50dd4b195404
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"automated_clean": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_boo [0.042596s] ... 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-104b6e8e-5e03-4d3e-9676-7c074107ccaf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value 'boo!', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network [0.132940s] ... 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-12f6fd3e-d925-4876-a6b7-cf499ddce267
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:04.060541+00:00", "updated_at": "2025-05-29T16:56:04.147452+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet2", "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation_owned [0.187985s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/99b13a80-0a30-4794-876e-690577c0d8e6 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-ea9d07dc-d7f2-45ae-87f1-5c290e60a5d1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update owner of node \\\"99b13a80-0a30-4794-876e-690577c0d8e6\\\" while it is allocated to an allocation with an  owner.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device [0.049877s] ... 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-4d7291ac-19d9-47ef-a4ba-dd9bda323468
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"boot_device": "pxe", "persistent": true}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_nullstr [0.048936s] ... 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-9deb137b-5657-4547-b99b-246bf990fe5d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value '', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version [0.053825s] ... 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-32ff3a26-c43f-4f05-9d86-ce9f10da8d35
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name [0.080713s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/spam/management/boot_device WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b3bea9f0-a754-49ce-9e3b-583fea827b6f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"boot_device": "pxe", "persistent": true}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api [0.090497s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/5b79cac8-0dd3-4749-b256-0277075b347b WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-be5db01e-530f-4099-8f42-2b459926049a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_older_soft_ver [0.062882s] ... 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-6d862af2-326a-4a39-bcef-416da6feaf95
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade [0.067811s] ... 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-1d94c195-5537-4850-8dcd-b14df8cba441
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_soft_ver [0.054516s] ... 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-6509ff2d-1504-47d7-a10e-90e93ad21b12
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported [0.091407s] ... 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-bd703e64-8fc5-4fa5-a972-3b247e508c16
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_undocumented_request_zero [0.049724s] ... 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-4cf60186-4e88-4187-bb56-19da8f4a45e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_invalid_request_two [0.057007s] ... 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-940e9ee1-eb6a-493b-9979-b50642904e80
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value '2', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid [0.173052s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '54ddc353-5c1d-469c-81ed-5230786dbc4e', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dfa91949-6d9f-44eb-82bb-51739aed32f2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:04.351647+00:00", "updated_at": "2025-05-29T16:56:04.456615+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": "54ddc353-5c1d-469c-81ed-5230786dbc4e"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields [0.092097s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fields=uuid,instance_info WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-14e2217d-a449-446a-b0e4-f90eb92c7272
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "f6473c0c-2ec9-413c-9ca4-6c7177a3decf", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/f6473c0c-2ec9-413c-9ca4-6c7177a3decf", "rel": "self"}, {"href": "http://localhost/nodes/f6473c0c-2ec9-413c-9ca4-6c7177a3decf", "rel": "bookmark"}]}, {"uuid": "47ab6ebc-3468-4eff-bdf3-c20d4445bba0", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/47ab6ebc-3468-4eff-bdf3-c20d4445bba0", "rel": "self"}, {"href": "http://localhost/nodes/47ab6ebc-3468-4eff-bdf3-c20d4445bba0", "rel": "bookmark"}]}, {"uuid": "788e228f-4fce-4366-8450-085457f88e72", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/788e228f-4fce-4366-8450-085457f88e72", "rel": "self"}, {"href": "http://localhost/nodes/788e228f-4fce-4366-8450-085457f88e72", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned [0.183243s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/2cbaa075-618d-46b1-b96f-5b81bcff470a WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b22d144e-b0c0-40cf-a6f2-74b4949b4bac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "2cbaa075-618d-46b1-b96f-5b81bcff470a", "created_at": "2025-05-29T16:56:04.354353+00:00", "updated_at": null, "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/2cbaa075-618d-46b1-b96f-5b81bcff470a", "rel": "self"}, {"href": "http://localhost/nodes/2cbaa075-618d-46b1-b96f-5b81bcff470a", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2cbaa075-618d-46b1-b96f-5b81bcff470a/ports", "rel": "self"}, {"href": "http://localhost/nodes/2cbaa075-618d-46b1-b96f-5b81bcff470a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2cbaa075-618d-46b1-b96f-5b81bcff470a/states", "rel": "self"}, {"href": "http://localhost/nodes/2cbaa075-618d-46b1-b96f-5b81bcff470a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2cbaa075-618d-46b1-b96f-5b81bcff470a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2cbaa075-618d-46b1-b96f-5b81bcff470a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2cbaa075-618d-46b1-b96f-5b81bcff470a/volume", "rel": "self"}, {"href": "http://localhost/nodes/2cbaa075-618d-46b1-b96f-5b81bcff470a/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver [0.038995s] ... 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-5daab70e-c4de-4607-b089-4cc90099c6dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api [0.048866s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'fb399456-8915-48c0-8b50-44be4deff828', 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-db5c5e74-f990-40a0-bd82-13c343f1ea27
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver [0.076518s] ... 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-08fb622e-4537-47c2-b669-97c8b5598b63
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields_as_list [0.107630s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fields=uuid&fields=instance_info WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aae96461-bb81-479b-8be5-0fbcd514477e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "319d3ffa-3945-4f80-8d47-33808d9954e5", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/319d3ffa-3945-4f80-8d47-33808d9954e5", "rel": "self"}, {"href": "http://localhost/nodes/319d3ffa-3945-4f80-8d47-33808d9954e5", "rel": "bookmark"}]}, {"uuid": "d9f9652a-699f-433f-93a7-b440c85ad796", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/d9f9652a-699f-433f-93a7-b440c85ad796", "rel": "self"}, {"href": "http://localhost/nodes/d9f9652a-699f-433f-93a7-b440c85ad796", "rel": "bookmark"}]}, {"uuid": "cb896223-e4bd-4dd8-b988-f44a6b4389bd", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/cb896223-e4bd-4dd8-b988-f44a6b4389bd", "rel": "self"}, {"href": "http://localhost/nodes/cb896223-e4bd-4dd8-b988-f44a6b4389bd", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove [0.096468s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'f5544a63-c9a5-4dde-a0e9-49ff0077bf1c', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3ecf3190-e5b1-495e-a846-375a1114f685
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:04.540949+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.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden [0.183606s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/44d25c92-e946-4cc7-9bba-7765271b157a WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-4e263187-c9cd-48e2-b526-76ceacb28a78
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update owner of node \\\"44d25c92-e946-4cc7-9bba-7765271b157a\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_undocumented_request_one [0.105597s] ... 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-4e2d4626-f4f6-41ec-aa79-f04f7b7bee09
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add [0.107467s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'c1922c78-e930-45d5-b4d2-8e930f827e32', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '4d5602e5-e871-467d-ad2e-86c08880b8bb', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b100b570-95fc-4560-bf91-247f2cd179b7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:04.646834+00:00", "updated_at": "2025-05-29T16:56:04.710664+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": "4d5602e5-e871-467d-ad2e-86c08880b8bb"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service [0.125501s] ... 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-663255db-3df8-4343-953f-b396a1917658
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.87
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future.
  cls = validator_for(schema)
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular [0.083033s] ... 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-6a6d7966-8335-44b6-b067-8b5744e905d8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:04.750360+00:00", "updated_at": "2025-05-29T16:56:04.797339+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api [0.039063s] ... 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-00373459-10b7-46a8-b2e9-20839c169272
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_args_required [0.058073s] ... 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-4a40021f-cd4e-4f1f-b201-17f97b19f5cf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.87
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"service_steps\\\" is required when setting target provision state to service\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format [0.055097s] ... 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-7d55c8bc-1cf7-45f4-914b-af4d944e244d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed [0.047474s] ... 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-2bfc7ba5-7682-40f6-9e9e-9a8e95359e67
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID or name for port_ident: 52:54:00:cf:2d:31\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_fields_for_nova [0.358845s] ... 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-a4b636bf-0e98-46a4-b9e1-68b74b113ac4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "c68d47a0-59d5-4b8f-9cfe-c7d8e677de51", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "a1028dfd-a6b4-45c7-9ce0-9ec40886bea0", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/c68d47a0-59d5-4b8f-9cfe-c7d8e677de51", "rel": "self"}, {"href": "http://localhost/nodes/c68d47a0-59d5-4b8f-9cfe-c7d8e677de51", "rel": "bookmark"}]}, {"uuid": "92bd3b8b-7ada-45c9-858c-633466ea0cd9", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "c67bc620-9dfc-4da6-9c52-b325f63eec2d", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/92bd3b8b-7ada-45c9-858c-633466ea0cd9", "rel": "self"}, {"href": "http://localhost/nodes/92bd3b8b-7ada-45c9-858c-633466ea0cd9", "rel": "bookmark"}]}, {"uuid": "680599e5-61f4-4e27-bbb9-33c97e57b2f1", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "13721db0-b92e-4502-b16c-3359c593a7a4", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/680599e5-61f4-4e27-bbb9-33c97e57b2f1", "rel": "self"}, {"href": "http://localhost/nodes/680599e5-61f4-4e27-bbb9-33c97e57b2f1", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_with_runbooks [0.096207s] ... 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-f33e4cc9-2459-4df8-a6a4-41973c02a531
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future.
  cls = validator_for(schema)
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_with_runbooks_unapproved [0.089885s] ... 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-cffabb55-cebf-40b1-80df-7ccff9b318e4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This runbook has not been approved for use on this node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Please ask an administrator to add it to your node traits.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid [0.112961s] ... 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-005b0f4a-3213-41d3-ab70-11c7007d3871
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:04.978469+00:00", "updated_at": "2025-05-29T16:56:05.053613+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected [0.411656s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/3b5473d2-4ca3-476e-8ab9-9d7e508da31f WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0288836b-5ba8-48e6-a61a-b46a58936ec2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "3b5473d2-4ca3-476e-8ab9-9d7e508da31f", "created_at": "2025-05-29T16:56:04.893580+00:00", "updated_at": null, "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/3b5473d2-4ca3-476e-8ab9-9d7e508da31f", "rel": "self"}, {"href": "http://localhost/nodes/3b5473d2-4ca3-476e-8ab9-9d7e508da31f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3b5473d2-4ca3-476e-8ab9-9d7e508da31f/ports", "rel": "self"}, {"href": "http://localhost/nodes/3b5473d2-4ca3-476e-8ab9-9d7e508da31f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3b5473d2-4ca3-476e-8ab9-9d7e508da31f/states", "rel": "self"}, {"href": "http://localhost/nodes/3b5473d2-4ca3-476e-8ab9-9d7e508da31f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3b5473d2-4ca3-476e-8ab9-9d7e508da31f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3b5473d2-4ca3-476e-8ab9-9d7e508da31f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3b5473d2-4ca3-476e-8ab9-9d7e508da31f/volume", "rel": "self"}, {"href": "http://localhost/nodes/3b5473d2-4ca3-476e-8ab9-9d7e508da31f/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid [0.152520s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fields=name&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9de0d399-adb4-4cc5-82e2-968228995f82
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"name": null, "links": [{"href": "http://localhost/v1/nodes/87b7983d-35a2-40ec-ac72-0927dbc1ae26", "rel": "self"}, {"href": "http://localhost/nodes/87b7983d-35a2-40ec-ac72-0927dbc1ae26", "rel": "bookmark"}]}, {"name": null, "links": [{"href": "http://localhost/v1/nodes/3c301842-fdb7-4dfd-9368-ed723cf89da6", "rel": "self"}, {"href": "http://localhost/nodes/3c301842-fdb7-4dfd-9368-ed723cf89da6", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=3c301842-fdb7-4dfd-9368-ed723cf89da6"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device [0.065566s] ... 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-f89f06c4-5408-4ce3-9309-227726c7ded5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name [0.079682s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 204 No Content
Openstack-Request-Id: req-70c9a8db-9a15-4a67-942d-a4886e642210
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field [0.141878s] ... 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-a9ad67d8-12fb-4bd9-b6a5-0a048bf64c9d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api [0.166226s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/0caeed32-3f3c-40bf-b861-61e15b6a9bcf WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-d5f9a819-89fe-4fed-81b2-e3fa83d41ca0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported [0.075586s] ... 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-21393acf-5e95-4e6d-b16c-fcd5fafa5ba3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent [0.051505s] ... 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-458600fc-1e1a-4d02-be9c-fd1d9ba71af5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed [0.283935s] ... 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-12d1d44d-8b7a-48f9-b658-22e93687bb6e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:05.296895+00:00", "updated_at": "2025-05-29T16:56:05.338671+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value [0.039465s] ... 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-4509905c-2171-45b1-a10c-c212438e0fd4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid persistent: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version [0.130282s] ... 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-09026d52-3556-4315-9901-c9ba9fa127f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name [0.063978s] ... 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-5d055152-3343-419b-910e-b80cc1bab36b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed [0.096020s] ... 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-f4a738f9-a2fb-4e70-97dc-f555f8884125
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update port \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c781\\\" on \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found [0.050401s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/5defd613-0a13-4e09-beb3-00deb2f3c9d1 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-10d324f5-7e21-4c0c-b5d9-f4d27832ed1d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 5defd613-0a13-4e09-beb3-00deb2f3c9d1 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields [0.129942s] ... 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-846e6dc2-e767-4cbe-ad6a-beb59653bf9c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"conductor_group": "", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason [0.268909s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/98e64ad4-2332-4fb1-a05b-d272e5107ede WITH [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d5a18961-22d3-40bf-8c50-f56ee24c91df
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "98e64ad4-2332-4fb1-a05b-d272e5107ede", "created_at": "2025-05-29T16:56:05.379795+00:00", "updated_at": null, "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/98e64ad4-2332-4fb1-a05b-d272e5107ede", "rel": "self"}, {"href": "http://localhost/nodes/98e64ad4-2332-4fb1-a05b-d272e5107ede", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/98e64ad4-2332-4fb1-a05b-d272e5107ede/ports", "rel": "self"}, {"href": "http://localhost/nodes/98e64ad4-2332-4fb1-a05b-d272e5107ede/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/98e64ad4-2332-4fb1-a05b-d272e5107ede/states", "rel": "self"}, {"href": "http://localhost/nodes/98e64ad4-2332-4fb1-a05b-d272e5107ede/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/98e64ad4-2332-4fb1-a05b-d272e5107ede/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/98e64ad4-2332-4fb1-a05b-d272e5107ede/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/98e64ad4-2332-4fb1-a05b-d272e5107ede/volume", "rel": "self"}, {"href": "http://localhost/nodes/98e64ad4-2332-4fb1-a05b-d272e5107ede/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version [0.104091s] ... 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-d8d5662d-bb35-4315-812f-c1a7cf76ade3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized [0.115190s] ... 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-82453fbb-16d6-4d16-bf05-321495ee47eb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:05.558529+00:00", "updated_at": "2025-05-29T16:56:05.603459+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported [0.271513s] ... 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-79caecaa-bc29-417b-8e7f-747ebaded034
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information [0.106903s] ... 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-cfd2ceae-b8bf-47d0-b347-05e2cc9751d8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"console_enabled": true, "console_info": {"test": "test-data"}}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request [0.035545s] ... 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-adfcf1d8-0368-4bce-9a33-dac1f453185b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid enabled: Unrecognized value 'invalid-value', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter [0.036114s] ... 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-8db1e1be-f972-49af-97f9-059ce1bbb2df
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: enabled\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_remove [0.270131s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/9974ed10-9d6b-403e-bb97-eeb8ae97593b WITH [{'op': 'remove', 'path': '/protected'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2f55e91a-ba87-4916-9295-ece8e5f67e7f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "9974ed10-9d6b-403e-bb97-eeb8ae97593b", "created_at": "2025-05-29T16:56:05.623657+00:00", "updated_at": null, "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/9974ed10-9d6b-403e-bb97-eeb8ae97593b", "rel": "self"}, {"href": "http://localhost/nodes/9974ed10-9d6b-403e-bb97-eeb8ae97593b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9974ed10-9d6b-403e-bb97-eeb8ae97593b/ports", "rel": "self"}, {"href": "http://localhost/nodes/9974ed10-9d6b-403e-bb97-eeb8ae97593b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9974ed10-9d6b-403e-bb97-eeb8ae97593b/states", "rel": "self"}, {"href": "http://localhost/nodes/9974ed10-9d6b-403e-bb97-eeb8ae97593b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9974ed10-9d6b-403e-bb97-eeb8ae97593b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9974ed10-9d6b-403e-bb97-eeb8ae97593b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9974ed10-9d6b-403e-bb97-eeb8ae97593b/volume", "rel": "self"}, {"href": "http://localhost/nodes/9974ed10-9d6b-403e-bb97-eeb8ae97593b/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed [0.178247s] ... 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-7a488c91-d5f1-4b55-a67f-28657f71ba4e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.19
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:05.651653+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported [0.061402s] ... 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-59bb7c69-5e27-4242-a310-5b84100a4e94
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name [0.135763s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/spam/states/console WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-23ddcee1-1264-471d-8831-b901ac931138
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"console_enabled": true, "console_info": {"test": "test-data"}}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled [0.049487s] ... 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-29dd26c2-74a4-4532-8b96-03268106417f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled [0.047356s] ... 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-fb37055c-20d7-41f0-ad27-08c42b2904c2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"console_enabled": false, "console_info": null}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version [0.160510s] ... 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-59aba9e9-fa8b-4258-8706-1919b34f814e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled [0.088577s] ... 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-0e453abc-cb08-4a2a-ae7d-c55f99ccd398
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_enroll [0.041961s] ... 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-56bdf74a-b971-4c6d-89a8-1541cb17e5a1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "df53d0bb-846f-4dcf-9ebd-00e7b4662c0e"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported [0.102346s] ... 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-63544863-3c78-4fb2-a8a3-09309735e431
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state [0.052299s] ... 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-6e3a66ed-b2dc-49d5-a87a-f720c8f0c2e1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version [0.040387s] ... 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-d5038fbd-7978-4615-afee-0db95c698a1d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_override_defaults [0.059003s] ... 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-f05241ed-6cd5-4a15-924e-2acaa1424a85
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "8de5d738-37b0-478c-800d-9b44a0a08223"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_invalid_value [0.067038s] ... 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-847dbd6f-7f16-4ef3-8276-72cae0a2e4d6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"error\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields [0.078262s] ... 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-56c731cc-e37a-4746-8183-58361105c96e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field spongebob is not a valid field.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_wrong_driver [0.067758s] ... 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-b30b6221-efb1-4795-aa75-b0044daacc76
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"An unknown exception occurred.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported [0.069554s] ... 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-50249010-8cf9-42fc-891f-c2782e8a07f5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string [0.408143s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/d1a493b5-76aa-495b-8358-b46e96fc9f19 WITH [{'path': '/protected', 'value': 'True', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2d9b0a55-1ff1-4d12-9d35-a67d95237925
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "d1a493b5-76aa-495b-8358-b46e96fc9f19", "created_at": "2025-05-29T16:56:05.965204+00:00", "updated_at": null, "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/d1a493b5-76aa-495b-8358-b46e96fc9f19", "rel": "self"}, {"href": "http://localhost/nodes/d1a493b5-76aa-495b-8358-b46e96fc9f19", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d1a493b5-76aa-495b-8358-b46e96fc9f19/ports", "rel": "self"}, {"href": "http://localhost/nodes/d1a493b5-76aa-495b-8358-b46e96fc9f19/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d1a493b5-76aa-495b-8358-b46e96fc9f19/states", "rel": "self"}, {"href": "http://localhost/nodes/d1a493b5-76aa-495b-8358-b46e96fc9f19/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d1a493b5-76aa-495b-8358-b46e96fc9f19/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d1a493b5-76aa-495b-8358-b46e96fc9f19/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d1a493b5-76aa-495b-8358-b46e96fc9f19/volume", "rel": "self"}, {"href": "http://localhost/nodes/d1a493b5-76aa-495b-8358-b46e96fc9f19/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field [0.088830s] ... 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-15b2f587-f394-45ba-8466-a90364e06c4f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"description": "useful piece", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_qs [0.066102s] ... 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-16e272df-f864-4666-9678-b72b7518f604
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create [0.115266s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'f54dddee-c3d4-4fcd-a2be-87d028839111', '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/f54dddee-c3d4-4fcd-a2be-87d028839111
Openstack-Request-Id: req-bf125710-7801-43a9-8f3e-450b0bc7f60d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "f54dddee-c3d4-4fcd-a2be-87d028839111", "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/f54dddee-c3d4-4fcd-a2be-87d028839111", "rel": "self"}, {"href": "http://localhost/runbooks/f54dddee-c3d4-4fcd-a2be-87d028839111", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/f54dddee-c3d4-4fcd-a2be-87d028839111 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3be6d629-1a28-4a19-80fd-57767bfdbbb0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "f54dddee-c3d4-4fcd-a2be-87d028839111", "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/f54dddee-c3d4-4fcd-a2be-87d028839111", "rel": "self"}, {"href": "http://localhost/runbooks/f54dddee-c3d4-4fcd-a2be-87d028839111", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning [0.055411s] ... 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-d20c839c-e1c9-4fa0-9aa9-4a8a566c285e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_complex_step_args [0.068790s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'fc93220c-eb4d-4f56-b9a1-3e5427991e7e', '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/fc93220c-eb4d-4f56-b9a1-3e5427991e7e
Openstack-Request-Id: req-7c90ef53-7710-49d6-9562-e3b69a4588b1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "fc93220c-eb4d-4f56-b9a1-3e5427991e7e", "created_at": "2025-05-29T16:56:06.311104+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/fc93220c-eb4d-4f56-b9a1-3e5427991e7e", "rel": "self"}, {"href": "http://localhost/runbooks/fc93220c-eb4d-4f56-b9a1-3e5427991e7e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "order": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode [0.047205s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted
Openstack-Request-Id: req-975d5b01-04cf-4bce-acd5-1d5656c3b30d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string_invalid [0.135369s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/2cdd50e8-a416-414d-8e74-ffc54581d96f WITH [{'path': '/protected', 'value': 'YeahNahGood', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-180e1549-d35c-4d42-8240-271f3cd801a5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid protected: Unrecognized value 'YeahNahGood', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_disable_power_off_fields [0.118089s] ... 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-145cebbf-7a99-4889-91d6-cb03ae2a5b93
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.95
{"disable_power_off": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name [0.048201s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted
Openstack-Request-Id: req-64ee8010-a2bd-42a5-9909-9cbf9a52f5bb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_doesnt_contain_id [0.066544s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '0bf751ed-6d5d-441d-8de9-6f3cbd9d2c89', '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/0bf751ed-6d5d-441d-8de9-6f3cbd9d2c89
Openstack-Request-Id: req-95e3a039-10a6-46a7-979f-5fb93f7c6fed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0bf751ed-6d5d-441d-8de9-6f3cbd9d2c89", "created_at": "2025-05-29T16:56:06.370399+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0bf751ed-6d5d-441d-8de9-6f3cbd9d2c89", "rel": "self"}, {"href": "http://localhost/runbooks/0bf751ed-6d5d-441d-8de9-6f3cbd9d2c89", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/0bf751ed-6d5d-441d-8de9-6f3cbd9d2c89 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8a4a5cf9-62b9-4ffc-914c-7a5c70af1e48
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0bf751ed-6d5d-441d-8de9-6f3cbd9d2c89", "created_at": "2025-05-29T16:56:06.370399+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0bf751ed-6d5d-441d-8de9-6f3cbd9d2c89", "rel": "self"}, {"href": "http://localhost/runbooks/0bf751ed-6d5d-441d-8de9-6f3cbd9d2c89", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error [0.046622s] ... 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-18f1cc5b-0a47-49ba-9439-774b1cbe60fe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_error [0.054819s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'e4f8cff5-1b37-4afc-b364-9646e876c140', '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-c0a51c9f-eed5-41b8-a34a-2afb7deed87e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state [0.099542s] ... 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-02dadc94-7af6-43d2-ba51-36f986136771
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"state": "on"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason [0.066079s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {} GOT Response: 202 Accepted
Openstack-Request-Id: req-60618efc-eec2-4e01-84d4-0036133d2042
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason [0.176725s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/1173e4f9-d82d-4cb7-a734-8ac60da7ecd5 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-b0153124-6f51-4d06-ac58-04f6f92cea61
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1173e4f9-d82d-4cb7-a734-8ac60da7ecd5", "created_at": "2025-05-29T16:56:06.390381+00:00", "updated_at": null, "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/1173e4f9-d82d-4cb7-a734-8ac60da7ecd5", "rel": "self"}, {"href": "http://localhost/nodes/1173e4f9-d82d-4cb7-a734-8ac60da7ecd5", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1173e4f9-d82d-4cb7-a734-8ac60da7ecd5/ports", "rel": "self"}, {"href": "http://localhost/nodes/1173e4f9-d82d-4cb7-a734-8ac60da7ecd5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1173e4f9-d82d-4cb7-a734-8ac60da7ecd5/states", "rel": "self"}, {"href": "http://localhost/nodes/1173e4f9-d82d-4cb7-a734-8ac60da7ecd5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1173e4f9-d82d-4cb7-a734-8ac60da7ecd5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1173e4f9-d82d-4cb7-a734-8ac60da7ecd5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1173e4f9-d82d-4cb7-a734-8ac60da7ecd5/volume", "rel": "self"}, {"href": "http://localhost/nodes/1173e4f9-d82d-4cb7-a734-8ac60da7ecd5/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_iface_not_supported [0.072773s] ... 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-2e901f7e-7aaa-4a28-b0ed-3ded8104c554
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name [0.038419s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/maintenance WITH {} GOT Response: 202 Accepted
Openstack-Request-Id: req-64c17520-93cd-4193-befe-5136b76eda1a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_generate_uuid [0.089281s] ... 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/39619978-247e-4dcd-a284-c9c88d721ae9
Openstack-Request-Id: req-d329e389-7f8a-487d-a1f5-1f85052be6a6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "39619978-247e-4dcd-a284-c9c88d721ae9", "created_at": "2025-05-29T16:56:06.511013+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/39619978-247e-4dcd-a284-c9c88d721ae9", "rel": "self"}, {"href": "http://localhost/runbooks/39619978-247e-4dcd-a284-c9c88d721ae9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/39619978-247e-4dcd-a284-c9c88d721ae9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-862515b0-d5e7-4332-99a4-4b370a1ca693
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "39619978-247e-4dcd-a284-c9c88d721ae9", "created_at": "2025-05-29T16:56:06.511013+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/39619978-247e-4dcd-a284-c9c88d721ae9", "rel": "self"}, {"href": "http://localhost/runbooks/39619978-247e-4dcd-a284-c9c88d721ae9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
None
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_versioning [0.052065s] ... 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-af9735f7-2602-4115-9c54-da2a840f2506
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{"state": "on"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_api_version [0.041139s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '8cd301dd-64f8-4452-bb59-ffcd77718e5f', '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\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold [0.069324s] ... 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-70cc374c-3c40-47ca-a5f5-4d059a3ddbe1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.85
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_empty_steps [0.048253s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '6f19091c-8685-4427-aa9c-51d4f72b5220', 'steps': [], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c44ea3f3-1e4d-4a7a-aad2-a11f45242a51
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [] is too short\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold_not_allowed [0.057838s] ... 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-1be36164-7896-4bf8-8c21-9cf2c163a96c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.84
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_extra [0.051538s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '4a9f3535-3d36-416f-9c61-4f6c9b4926b5', '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-2121fe5c-01bc-4458-a6c4-032e099d1180
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'object', 'null'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold [0.045725s] ... 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-2f1c0aa6-9967-4b65-9119-86ca9a0372ae
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.85
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_foo [0.073931s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'c54c5060-031d-4ddd-99be-e68a0e1ef359', '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-52650e4e-d875-4140-b3e8-90a284dc99c3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class [0.256292s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/9f2460f2-033b-4382-b398-b63550cbeb0a WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ce8909f2-fca1-450a-bf37-39e2a4a9c11f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "9f2460f2-033b-4382-b398-b63550cbeb0a", "created_at": "2025-05-29T16:56:06.674120+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/9f2460f2-033b-4382-b398-b63550cbeb0a", "rel": "self"}, {"href": "http://localhost/nodes/9f2460f2-033b-4382-b398-b63550cbeb0a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9f2460f2-033b-4382-b398-b63550cbeb0a/ports", "rel": "self"}, {"href": "http://localhost/nodes/9f2460f2-033b-4382-b398-b63550cbeb0a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9f2460f2-033b-4382-b398-b63550cbeb0a/states", "rel": "self"}, {"href": "http://localhost/nodes/9f2460f2-033b-4382-b398-b63550cbeb0a/states", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold_not_allowed [0.091674s] ... 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-16152a54-6a7f-4f5a-ae2d-6a2d23d515ea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.84
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_name [0.049181s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 1, 'uuid': '44277f76-1d99-48e9-bf76-ed0f715c8b73', '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-1641d538-6836-47e6-9a62-75243e80be80
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'string'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_name_none [0.040364s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': None, 'uuid': 'd5e2e85f-f3e3-42bf-a41d-d99aa8ff4be2', '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-1d6b2327-0673-4dbd-94a7-5d9574cfceb0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: None is not of type 'string'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_servicehold [0.048878s] ... 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-d2d9ccff-d3ad-4923-97bb-ee792c474db1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.86
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_steps [0.056331s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'a8d9fb6c-8ea3-4628-880b-89ccf7175260', 'steps': {}, 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0bf07fa4-7da5-4949-914e-f0dae9572940
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: {} is not of type 'array'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length [0.129159s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/3a76fc5b-0c0c-4a70-bbd6-8e467fac2a8c WITH [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-556c5a49-e71d-4a0b-abf2-76076612a6af
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "3a76fc5b-0c0c-4a70-bbd6-8e467fac2a8c", "created_at": "2025-05-29T16:56:06.815950+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/3a76fc5b-0c0c-4a70-bbd6-8e467fac2a8c", "rel": "self"}, {"href": "http://localhost/nodes/3a76fc5b-0c0c-4a70-bbd6-8e467fac2a8c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3a76fc5b-0c0c-4a70-bbd6-8e467fac2a8c/ports", "rel": "self"}, {"href": "http://localhost/nodes/3a76fc5b-0c0c-4a70-bbd6-8e467fac2a8c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3a76fc5b-0c0c-4a70-bbd6-8e467fac2a8c/states", "rel": "self"}, {"href": "http://localhost/nodes/3a76fc5b-0c0c-4a70-bbd6-8e467fac2a8c/states", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 [0.079855s] ... 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-44f73ab2-49c6-4cdb-9c8c-d62da205d6d1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_lessee_field [0.361451s] ... 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-7c5e3cbe-fdf1-431f-8cd3-4a8c7cf590b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"lessee": "some-lucky-project", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api [0.066004s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/6a1472b1-a96d-4ee9-866d-041f47f84e4e WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-292575ce-b0de-4c79-b8a6-1999b64b8ba2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow [0.046263s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields [0.056161s] ... 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-ba2b6a44-2ae4-48b6-ac6a-a6c2a7e67662
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"network_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_args1 [0.106414s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'bd08abc5-8f6e-43c3-a778-c4c221b71887', '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-848d5462-0bf6-497d-bf44-3067c6dbd8ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'not a dict' is not of type 'object'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty [0.058297s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long [0.112172s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/d02e1136-62b6-4f76-83f6-d3fed8c7d53d WITH [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5cb21f80-1429-4dff-a7c5-25f3f5d5ef9a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_local_link_connection_none_type [0.045101s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version [0.084902s] ... 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-17563037-5d12-4996-a8d0-96058d389454
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.19
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none [0.033771s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_args2 [0.122894s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '58472a40-cef4-4cf4-9cf7-32d9da50ba9f', '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-62db9626-254f-4463-8345-87c8c4110f8a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [] is not of type 'object'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow [0.026074s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow [0.027539s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow [0.024552s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired [0.117661s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/672caacd-3f68-4e0b-a3b9-d2ca0df534e9 WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7f25a73f-e310-49a5-b7a3-382429913955
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "672caacd-3f68-4e0b-a3b9-d2ca0df534e9", "created_at": "2025-05-29T16:56:07.128476+00:00", "updated_at": null, "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/672caacd-3f68-4e0b-a3b9-d2ca0df534e9", "rel": "self"}, {"href": "http://localhost/nodes/672caacd-3f68-4e0b-a3b9-d2ca0df534e9", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/672caacd-3f68-4e0b-a3b9-d2ca0df534e9/ports", "rel": "self"}, {"href": "http://localhost/nodes/672caacd-3f68-4e0b-a3b9-d2ca0df534e9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/672caacd-3f68-4e0b-a3b9-d2ca0df534e9/states", "rel": "self"}, {"href": "http://localhost/nodes/672caacd-3f68-4e0b-a3b9-d2ca0df534e9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/672caacd-3f68-4e0b-a3b9-d2ca0df534e9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/672caacd-3f68-4e0b-a3b9-d2ca0df534e9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/672caacd-3f68-4e0b-a3b9-d2ca0df534e9/volume", "rel": "self"}, {"href": "http://localhost/nodes/672caacd-3f68-4e0b-a3b9-d2ca0df534e9/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow [0.024461s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_foo [0.107297s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '0a516a26-e36e-4485-8b85-05ee3fa9acd1', '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-fae742a2-50cb-4414-b3fb-a8c9d1117e60
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_old_api [0.064916s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/0586ee55-4c90-4c40-979d-f871ce0f6561 WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-bbc28d9a-482b-46a7-abdb-da1d1fb58bd6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow [0.063746s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor [0.188934s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-47a9e633-8427-4115-b9a5-65591c35aa4b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"nodes": []}
GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5cf280b4-619a-416e-9325-912dbda34996
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"nodes": [{"uuid": "2fe04e0a-2580-4bcf-b223-af93d13d9389", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/2fe04e0a-2580-4bcf-b223-af93d13d9389", "rel": "self"}, {"href": "http://localhost/nodes/2fe04e0a-2580-4bcf-b223-af93d13d9389", "rel": "bookmark"}]}, {"uuid": "e2f5cee6-f4d6-4f89-bc14-b0e6aed5da07", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/e2f5cee6-f4d6-4f89-bc14-b0e6aed5da07", "rel": "self"}, {"href": "http://localhost/nodes/e2f5cee6-f4d6-4f89-bc14-b0e6aed5da07", "rel": "bookmark"}]}]}
GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-baa4f59a-ed22-4f59-8adf-74052c11e153
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"nodes": [{"uuid": "e2f5cee6-f4d6-4f89-bc14-b0e6aed5da07", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/e2f5cee6-f4d6-4f89-bc14-b0e6aed5da07", "rel": "self"}, {"href": "http://localhost/nodes/e2f5cee6-f4d6-4f89-bc14-b0e6aed5da07", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_interface1 [0.069841s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '29f0e095-e16e-480b-b31f-507907e6153f', '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-af463148-410f-4fc3-a747-505b2c1a378c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [3] is not of type 'string'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortByAddress.test__get_ports_by_address [0.030434s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_reason [0.118497s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/9ac9cb49-8089-413c-a093-adaa57deecc6 WITH [{'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a36d89f5-4721-40f7-aa77-abf74e0100e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "9ac9cb49-8089-413c-a093-adaa57deecc6", "created_at": "2025-05-29T16:56:07.316225+00:00", "updated_at": null, "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/9ac9cb49-8089-413c-a093-adaa57deecc6", "rel": "self"}, {"href": "http://localhost/nodes/9ac9cb49-8089-413c-a093-adaa57deecc6", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9ac9cb49-8089-413c-a093-adaa57deecc6/ports", "rel": "self"}, {"href": "http://localhost/nodes/9ac9cb49-8089-413c-a093-adaa57deecc6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9ac9cb49-8089-413c-a093-adaa57deecc6/states", "rel": "self"}, {"href": "http://localhost/nodes/9ac9cb49-8089-413c-a093-adaa57deecc6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9ac9cb49-8089-413c-a093-adaa57deecc6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9ac9cb49-8089-413c-a093-adaa57deecc6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9ac9cb49-8089-413c-a093-adaa57deecc6/volume", "rel": "self"}, {"href": "http://localhost/nodes/9ac9cb49-8089-413c-a093-adaa57deecc6/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_interface2 [0.076064s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '81452759-13a5-4806-ac44-38615a463904', '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-ebe45646-837e-4b85-a4d4-8feaed7386db
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup [0.075468s] ... 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-79c57f63-54e2-4359-8627-95c39fe3bccd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fb93ac4f-cfd9-4503-8062-aca54841cbc2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group [0.125305s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9d233705-26da-4c11-9d79-dcb9504ccb5f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"nodes": [{"uuid": "2a41ffcb-1cc3-4692-8db4-82d2b6862b2f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/2a41ffcb-1cc3-4692-8db4-82d2b6862b2f", "rel": "self"}, {"href": "http://localhost/nodes/2a41ffcb-1cc3-4692-8db4-82d2b6862b2f", "rel": "bookmark"}]}]}
GET /v1/nodes?conductor_group=group2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6393995f-1502-45bb-899c-ab089469f725
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"nodes": [{"uuid": "0379116e-e755-4319-92ef-e3ac0cc32105", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/0379116e-e755-4319-92ef-e3ac0cc32105", "rel": "self"}, {"href": "http://localhost/nodes/0379116e-e755-4319-92ef-e3ac0cc32105", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?conductor_group=group1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1e758e1f-4d74-48c2-b7a8-52516662dc37
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"nodes": [{"uuid": "2a41ffcb-1cc3-4692-8db4-82d2b6862b2f", "created_at": "2025-05-29T16:56:07.349183+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/2a41ffcb-1cc3-4692-8db4-82d2b6862b2f", "rel": "self"}, {"href": "http://localhost/nodes/2a41ffcb-1cc3-4692-8db4-82d2b6862b2f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2a41ffcb-1cc3-4692-8db4-82d2b6862b2f/ports", "rel": "self"}, {"href": "http://localhost/nodes/2a41ffcb-1cc3-4692-8db4-82d2b6862b2f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2a41ffcb-1cc3-4692-8db4-82d2b6862b2f/states", "rel": "self"}, {"href": "http://localhost/nodes/2a41ffcb-1cc3-4692-8db4-82d2b6862b2f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2a41ffcb-1cc3-4692-8db4-82d2b6862b2f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2a41ffcb-1cc3-4692-8db4-82d2b6862b2f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2a41ffcb-1cc3-4692-8db4-82d2b6862b2f/volume", "rel": "self"}, {"href": "http://localhost/nodes/2a41ffcb-1cc3-4692-8db4-82d2b6862b2f/volume", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?conductor_group=group2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-07fefdc5-87cc-455d-9
    6ba-a7b1c8459068
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"nodes": [{"uuid": "0379116e-e755-4319-92ef-e3ac0cc32105", "created_at": "2025-05-29T16:56:07.351006+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/0379116e-e755-4319-92ef-e3ac0cc32105", "rel": "self"}, {"href": "http://localhost/nodes/0379116e-e755-4319-92ef-e3ac0cc32105", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0379116e-e755-4319-92ef-e3ac0cc32105/ports", "rel": "self"}, {"href": "http://localhost/nodes/0379116e-e755-4319-92ef-e3ac0cc32105/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0379116e-e755-4319-92ef-e3ac0cc32105/states", "rel": "self"}, {"href": "http://localhost/nodes/0379116e-e755-4319-92ef-e3ac0cc32105/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0379116e-e755-4319-92ef-e3ac0cc32105/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0379116e-e755-4319-92ef-e3ac0cc32105/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0379116e-e755-4319-92ef-e3ac0cc32105/volume", "rel": "self"}, {"href": "http://localhost/nodes/0379116e-e755-4319-92ef-e3ac0cc32105/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_negative_order [0.062585s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'ba2bec32-800d-4cc5-8b4e-438ebb042dad', '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-fb555e3b-784d-4dd7-820b-9005fdf40e4d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: -1 is less than the minimum of 0\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist [0.059681s] ... 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-6f43e42e-9c9d-4909-b047-52edf9f5f34c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:07.424899+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': 'c910beae-5411-4b57-a0a7-5bfff34679ba', 'name': '460c640e-2010-4ad3-8006-d23866ee387f', '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-22b62812-e8ff-4e0f-8031-a9493377a182
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed [0.061495s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-111a1037-a9d4-45fd-8a39-44e8629370ff
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"}
GET /v1/nodes/detail?conductor_group=group1 WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-d7a0cb39-595c-4b74-b173-885fb16f9c26
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_order [0.054943s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '1b907574-60ff-4090-8c97-c90faa89082c', '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-9ecb1a7b-d1bf-496e-9e4e-1e78a468a88e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_remove [0.130945s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/d78c25e0-f15f-47c2-ab15-b542ef3374a0 WITH [{'op': 'remove', 'path': '/retired'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a0631c27-38ff-44d8-a227-49d39d1f586d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "d78c25e0-f15f-47c2-ab15-b542ef3374a0", "created_at": "2025-05-29T16:56:07.433918+00:00", "updated_at": null, "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/d78c25e0-f15f-47c2-ab15-b542ef3374a0", "rel": "self"}, {"href": "http://localhost/nodes/d78c25e0-f15f-47c2-ab15-b542ef3374a0", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d78c25e0-f15f-47c2-ab15-b542ef3374a0/ports", "rel": "self"}, {"href": "http://localhost/nodes/d78c25e0-f15f-47c2-ab15-b542ef3374a0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d78c25e0-f15f-47c2-ab15-b542ef3374a0/states", "rel": "self"}, {"href": "http://localhost/nodes/d78c25e0-f15f-47c2-ab15-b542ef3374a0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d78c25e0-f15f-47c2-ab15-b542ef3374a0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d78c25e0-f15f-47c2-ab15-b542ef3374a0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d78c25e0-f15f-47c2-ab15-b542ef3374a0/volume", "rel": "self"}, {"href": "http://localhost/nodes/d78c25e0-f15f-47c2-ab15-b542ef3374a0/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_step [0.035352s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '19dc8a28-7935-43e9-abb3-a96ee9a3c0a7', '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-669e6554-ceb7-43f1-9217-f517ae37b5d5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'string'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized [0.111136s] ... 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-01089915-7f64-4737-af5c-39654067d6ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:07.525212+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-e5cc5bec-30b6-4f27-96a1-fd664b72ae72
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:07.525212+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host [0.083484s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor=like.shadows WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1039276e-cd9f-4b29-8364-db52cd5108c9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"nodes": []}
GET /v1/nodes?conductor=like.shadows WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-81d40e37-9b4b-40aa-aab3-d5e0864a021e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"nodes": []}
GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-ff6b60f8-763a-4988-bd0c-631a3e1580ab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Some unexpected thing happened\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_long_name [0.039837s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '83c86d2d-aacc-4e64-b872-d42e5f077bbc', '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/83c86d2d-aacc-4e64-b872-d42e5f077bbc
Openstack-Request-Id: req-81bc0e37-d3da-4b47-9f8b-2cfad5940aad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "83c86d2d-aacc-4e64-b872-d42e5f077bbc", "created_at": "2025-05-29T16:56:07.572565+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/83c86d2d-aacc-4e64-b872-d42e5f077bbc", "rel": "self"}, {"href": "http://localhost/runbooks/83c86d2d-aacc-4e64-b872-d42e5f077bbc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed [0.055207s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-ae56222d-ec5c-4830-8994-c9f2bf7aec56
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.49\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_name_invalid_too_long [0.054743s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '1f358529-dd07-41e7-b993-64371784e11f', '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-44ca73b5-9085-4c40-a90d-b28e4597413a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description [0.048132s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?description_contains=cat WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dab4fcc9-d5cd-48b1-83c9-b06ae34a2b68
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"nodes": [{"uuid": "0ea4fab2-2a6b-41d3-96b2-b6e54713a891", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/0ea4fab2-2a6b-41d3-96b2-b6e54713a891", "rel": "self"}, {"href": "http://localhost/nodes/0ea4fab2-2a6b-41d3-96b2-b6e54713a891", "rel": "bookmark"}]}]}
GET /v1/nodes?description_contains=dog WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-feefb735-2d0c-48b4-ab4d-9905f257e086
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"nodes": [{"uuid": "e2b3cd51-38ca-41e5-9a2a-8dc1505d1a72", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/e2b3cd51-38ca-41e5-9a2a-8dc1505d1a72", "rel": "self"}, {"href": "http://localhost/nodes/e2b3cd51-38ca-41e5-9a2a-8dc1505d1a72", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode [0.114287s] ... 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-88da256c-4e56-4b3d-8087-b2f4ef0a3fc0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:07.652517+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_field_name [0.051551s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'uuid': '1f2c3245-cf7c-4c4f-a518-592dbabced65', '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-67281f83-2e1f-4ca6-97fb-9e4c157c85b0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'name' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_field_steps [0.057626s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '9705c4c7-d8b5-4142-bc51-829dd9a9ab03', 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-44b6e74d-3eef-4b2f-9118-099a17bbf439
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'steps' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_with_reason [0.237825s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ef813903-db02-474c-b747-31d4adf3a8a2 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-17b1de2c-c4ad-4807-8dc9-49a438443598
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "ef813903-db02-474c-b747-31d4adf3a8a2", "created_at": "2025-05-29T16:56:07.626623+00:00", "updated_at": null, "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/ef813903-db02-474c-b747-31d4adf3a8a2", "rel": "self"}, {"href": "http://localhost/nodes/ef813903-db02-474c-b747-31d4adf3a8a2", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ef813903-db02-474c-b747-31d4adf3a8a2/ports", "rel": "self"}, {"href": "http://localhost/nodes/ef813903-db02-474c-b747-31d4adf3a8a2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ef813903-db02-474c-b747-31d4adf3a8a2/states", "rel": "self"}, {"href": "http://localhost/nodes/ef813903-db02-474c-b747-31d4adf3a8a2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ef813903-db02-474c-b747-31d4adf3a8a2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ef813903-db02-474c-b747-31d4adf3a8a2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ef813903-db02-474c-b747-31d4adf3a8a2/volume", "rel": "self"}, {"href": "http://localhost/nodes/ef813903-db02-474c-b747-31d4adf3a8a2/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver [0.104228s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?driver=ipmi WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-36984760-12bc-467e-a6e9-997e2fa6001c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.16
{"nodes": [{"uuid": "05e6f956-8ca8-4894-b71c-eb2361a78007", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/05e6f956-8ca8-4894-b71c-eb2361a78007", "rel": "self"}, {"href": "http://localhost/nodes/05e6f956-8ca8-4894-b71c-eb2361a78007", "rel": "bookmark"}]}]}
GET /v1/nodes?driver=fake-hardware WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-170b155a-5291-4ebd-a1fa-fa6039147790
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.16
{"nodes": [{"uuid": "2038951c-6530-4449-8d5a-38b693e5cf84", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/2038951c-6530-4449-8d5a-38b693e5cf84", "rel": "self"}, {"href": "http://localhost/nodes/2038951c-6530-4449-8d5a-38b693e5cf84", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id [0.131394s] ... 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-6194c7ff-d37d-4669-a885-d583f292f39b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:07.772905+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-30ca36f9-bd47-46ee-8632-99450ae2c72f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:07.772905+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version [0.045583s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?driver=fake WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-fe734d27-33f3-4f18-ad7d-5d9d61b09f0a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.16\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_interface [0.097348s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '01f6f916-583b-4aed-9671-8b584a005a7a', '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-64b831cb-87c3-4d2a-b0c9-7bbb9a9a2691
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'interface' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error [0.055725s] ... 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-faa3d1ac-2d38-4289-8205-930aa07e3a03
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state [0.118361s] ... 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-f192c797-57cd-4a2a-b636-f6165b630e9b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: Additional properties are not allowed ('power_state' was unexpected)\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault [0.110311s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fault=power failure WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aa9b1d38-e78e-4d95-a6a5-7c2a1922c088
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"nodes": [{"uuid": "53dd08a5-ac9e-42ba-b263-6362ef494898", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/53dd08a5-ac9e-42ba-b263-6362ef494898", "rel": "self"}, {"href": "http://localhost/nodes/53dd08a5-ac9e-42ba-b263-6362ef494898", "rel": "bookmark"}]}]}
GET /v1/nodes?fault=clean failure WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8f196cac-90a1-4506-b412-e89aea671a84
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"nodes": [{"uuid": "7b1b0499-92a9-4478-b085-395a9e506f6d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/7b1b0499-92a9-4478-b085-395a9e506f6d", "rel": "self"}, {"href": "http://localhost/nodes/7b1b0499-92a9-4478-b085-395a9e506f6d", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?fault=power failure WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b18340d0-b589-43bc-a70f-13be2a3d59b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"nodes": [{"uuid": "53dd08a5-ac9e-42ba-b263-6362ef494898", "created_at": "2025-05-29T16:56:07.859955+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/53dd08a5-ac9e-42ba-b263-6362ef494898", "rel": "self"}, {"href": "http://localhost/nodes/53dd08a5-ac9e-42ba-b263-6362ef494898", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/53dd08a5-ac9e-42ba-b263-6362ef494898/ports", "rel": "self"}, {"href": "http://localhost/nodes/53dd08a5-ac9e-42ba-b263-6362ef494898/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/53dd08a5-ac9e-42ba-b263-6362ef494898/states", "rel": "self"}, {"href": "http://localhost/nodes/53dd08a5-ac9e-42ba-b263-6362ef494898/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/53dd08a5-ac9e-42ba-b263-6362ef494898/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/53dd08a5-ac9e-42ba-b263-6362ef494898/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/53dd08a5-ac9e-42ba-b263-6362ef494898/volume", "rel": "self"}, {"href": "http://localhost/nodes/53dd08a5-ac9e-42ba-b263-6362ef494898/volume", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?fault=clean failure WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bd4f3d8a-6e45-4e46-aabc-c48115a68d0b
X-Openstack-Ironic-Api-Maximum-V
    ersion: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"nodes": [{"uuid": "7b1b0499-92a9-4478-b085-395a9e506f6d", "created_at": "2025-05-29T16:56:07.865367+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/7b1b0499-92a9-4478-b085-395a9e506f6d", "rel": "self"}, {"href": "http://localhost/nodes/7b1b0499-92a9-4478-b085-395a9e506f6d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7b1b0499-92a9-4478-b085-395a9e506f6d/ports", "rel": "self"}, {"href": "http://localhost/nodes/7b1b0499-92a9-4478-b085-395a9e506f6d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7b1b0499-92a9-4478-b085-395a9e506f6d/states", "rel": "self"}, {"href": "http://localhost/nodes/7b1b0499-92a9-4478-b085-395a9e506f6d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7b1b0499-92a9-4478-b085-395a9e506f6d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7b1b0499-92a9-4478-b085-395a9e506f6d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7b1b0499-92a9-4478-b085-395a9e506f6d/volume", "rel": "self"}, {"href": "http://localhost/nodes/7b1b0499-92a9-4478-b085-395a9e506f6d/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_order [0.105237s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'b38e61a4-c515-4ec0-bf64-374e454bf1ee', '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-37e6f180-e91f-46ff-8eb3-7337fc3e76a8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'order' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid [0.098570s] ... 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/fc14197c-9650-41e1-b7aa-ff356d748441
Openstack-Request-Id: req-08eec9a1-1a12-4e9e-a0e1-10d169a8a9a2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "fc14197c-9650-41e1-b7aa-ff356d748441", "created_at": "2025-05-29T16:56:07.925065+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/fc14197c-9650-41e1-b7aa-ff356d748441", "rel": "self"}, {"href": "http://localhost/portgroups/fc14197c-9650-41e1-b7aa-ff356d748441", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/fc14197c-9650-41e1-b7aa-ff356d748441/ports", "rel": "self"}, {"href": "http://localhost/portgroups/fc14197c-9650-41e1-b7aa-ff356d748441/ports", "rel": "bookmark"}]}
GET /v1/portgroups/fc14197c-9650-41e1-b7aa-ff356d748441 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aa5b46fb-1976-4445-914c-151cae7b8b00
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "fc14197c-9650-41e1-b7aa-ff356d748441", "created_at": "2025-05-29T16:56:07.925065+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/fc14197c-9650-41e1-b7aa-ff356d748441", "rel": "self"}, {"href": "http://localhost/portgroups/fc14197c-9650-41e1-b7aa-ff356d748441", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/fc14197c-9650-41e1-b7aa-ff356d748441/ports", "rel": "self"}, {"href": "http://localhost/portgroups/fc14197c-9650-41e1-b7aa-ff356d748441/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface [0.129351s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/b041ee02-0abe-4c67-9904-2f056456fe40 WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cf17b989-dc2b-484c-8134-9be0d895ff28
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "b041ee02-0abe-4c67-9904-2f056456fe40", "created_at": "2025-05-29T16:56:07.923915+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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/b041ee02-0abe-4c67-9904-2f056456fe40", "rel": "self"}, {"href": "http://localhost/nodes/b041ee02-0abe-4c67-9904-2f056456fe40", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b041ee02-0abe-4c67-9904-2f056456fe40/ports", "rel": "self"}, {"href": "http://localhost/nodes/b041ee02-0abe-4c67-9904-2f056456fe40/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b041ee02-0abe-4c67-9904-2f056456fe40/states", "rel": "self"}, {"href": "http://localhost/nodes/b041ee02-0abe-4c67-9904-2f056456fe40/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b041ee02-0abe-4c67-9904-2f056456fe40/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b041ee02-0abe-4c67-9904-2f056456fe40/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b041ee02-0abe-4c67-9904-2f056456fe40/volume", "rel": "self"}, {"href": "http://localhost/nodes/b041ee02-0abe-4c67-9904-2f056456fe40/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed [0.061796s] ... 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-38df0683-e4a1-4986-b09e-a175b1446664
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_step [0.077360s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'c9e27d7a-a776-4dc3-acfa-112b2a80a4ae', '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-cd269308-3794-4067-910a-f27095f89efd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'step' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed [0.102355s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fault=power failure WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-115708fd-c6dd-4de4-9510-ddf8fac220d0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.41
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\", \"debuginfo\": null}"}
GET /v1/nodes/detail?fault=power failure WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-2379a051-a4e3-49db-8b71-008095dca752
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.41
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api [0.061269s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/f01361d5-887c-4940-974c-0bb0dd1d4d88 WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-8e2e7a15-4987-40d1-97d8-77654e4585a1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault [0.063353s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fault=somefake WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-32d3ac95-82e9-4952-9966-0b816936f5ab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure', 'service failure')\", \"debuginfo\": null}"}
GET /v1/nodes/detail?fault=somefake WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-4675150d-abae-4003-a794-5616f89cf50d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure', 'service failure')\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_public_runbook_project_scope_fails [0.082488s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '0219c511-1165-43d6-93d3-5ea8f07c9f4a', '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-ac790313-680c-4755-86d5-9265d4d3bd73
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a runbook as a project scoped admin with an owner other than your own project.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits [0.077143s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/424afdcd-4358-44a5-bcee-ac32af31d30f WITH [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-48b20fc5-0c63-41e0-911c-e721d9b2e707
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /traits. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver [0.036076s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?driver=test WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-06d09872-9ac7-4478-8a95-bd6d6e7c30c0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.16
{"nodes": []}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state [0.037758s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?provision_state=test WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-80a28471-65dd-4f53-92c0-b42ddf311bd8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.9
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Provision state \\\"test\\\" is not valid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_owner_project_scope_fails [0.069896s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '2e69bdf9-d1db-4826-9057-7a85531d26bd', '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-e582a315-d4cb-482d-8247-86860f51782a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a runbook as a project scoped admin with an owner other than your own project.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces [0.115406s] ... 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-5192a400-2327-4336-be28-29a458b13372
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:08.166565+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node-57.1", "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class [0.072920s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?resource_class=test WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f68f23a7-6ed1-4cac-9b50-b60a88923f6a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": []}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_owner_system_scope [0.095786s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '0d4f1a43-325d-4648-a635-688395febe57', '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/0d4f1a43-325d-4648-a635-688395febe57
Openstack-Request-Id: req-8c2a76e7-e997-4def-a396-e64158db3269
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0d4f1a43-325d-4648-a635-688395febe57", "created_at": "2025-05-29T16:56:08.270682+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "catsay", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0d4f1a43-325d-4648-a635-688395febe57", "rel": "self"}, {"href": "http://localhost/runbooks/0d4f1a43-325d-4648-a635-688395febe57", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/0d4f1a43-325d-4648-a635-688395febe57 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-56bcbaa6-86b1-4e41-8f6e-39cf3dcd7099
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0d4f1a43-325d-4648-a635-688395febe57", "created_at": "2025-05-29T16:56:08.270682+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "catsay", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0d4f1a43-325d-4648-a635-688395febe57", "rel": "self"}, {"href": "http://localhost/runbooks/0d4f1a43-325d-4648-a635-688395febe57", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait [0.056396s] ... 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-1f98d3c6-bb1b-419f-af3e-b6ac1e1aac63
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail [0.060045s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?resource_class=test WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2cf6a75a-9f7f-422f-8478-277e62588505
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": []}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked [0.081402s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits/CUSTOM_3 WITH {} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-c1e3c141-2ef9-4bf1-9204-e161b1959af3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_project_scope [0.103487s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '2374d088-704d-4991-99fa-7c8edc43e436', '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/2374d088-704d-4991-99fa-7c8edc43e436
Openstack-Request-Id: req-c1509bc9-3f23-48a4-8c56-2c510d28d0b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "2374d088-704d-4991-99fa-7c8edc43e436", "created_at": "2025-05-29T16:56:08.380663+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/2374d088-704d-4991-99fa-7c8edc43e436", "rel": "self"}, {"href": "http://localhost/runbooks/2374d088-704d-4991-99fa-7c8edc43e436", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/2374d088-704d-4991-99fa-7c8edc43e436 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f81cc212-b540-44d5-a759-b35ee4e54cb4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "2374d088-704d-4991-99fa-7c8edc43e436", "created_at": "2025-05-29T16:56:08.380663+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/2374d088-704d-4991-99fa-7c8edc43e436", "rel": "self"}, {"href": "http://localhost/runbooks/2374d088-704d-4991-99fa-7c8edc43e436", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee [0.087982s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?lessee=project1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1556f633-a044-4d79-867b-c47507c86dd0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "11d4cc74-5e03-4673-944d-38eb2bd30779", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/11d4cc74-5e03-4673-944d-38eb2bd30779", "rel": "self"}, {"href": "http://localhost/nodes/11d4cc74-5e03-4673-944d-38eb2bd30779", "rel": "bookmark"}]}]}
GET /v1/nodes?lessee=project2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7bc270cc-7f7b-46ad-ad16-0e0a37f79d08
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "720177b7-a40c-4cff-944e-d6c0749e46a6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/720177b7-a40c-4cff-944e-d6c0749e46a6", "rel": "self"}, {"href": "http://localhost/nodes/720177b7-a40c-4cff-944e-d6c0749e46a6", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?lessee=project1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-060c61db-a8a6-4c82-9f3e-6dcfd8d6743e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "11d4cc74-5e03-4673-944d-38eb2bd30779", "created_at": "2025-05-29T16:56:08.346625+00:00", "updated_at": null, "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/11d4cc74-5e03-4673-944d-38eb2bd30779", "rel": "self"}, {"href": "http://localhost/nodes/11d4cc74-5e03-4673-944d-38eb2bd30779", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/11d4cc74-5e03-4673-944d-38eb2bd30779/ports", "rel": "self"}, {"href": "http://localhost/nodes/11d4cc74-5e03-4673-944d-38eb2bd30779/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/11d4cc74-5e03-4673-944d-38eb2bd30779/states", "rel": "self"}, {"href": "http://localhost/nodes/11d4cc74-5e03-4673-944d-38eb2bd30779/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/11d4cc74-5e03-4673-944d-38eb2bd30779/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/11d4cc74-5e03-4673-944d-38eb2bd30779/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/11d4cc74-5e03-4673-944d-38eb2bd30779/volume", "rel": "self"}, {"href": "http://localhost/nodes/11d4cc74-5e03-4673-
    944d-38eb2bd30779/volume", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?lessee=project2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-79c8a2f9-e377-4560-ba24-e4298c039161
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "720177b7-a40c-4cff-944e-d6c0749e46a6", "created_at": "2025-05-29T16:56:08.349373+00:00", "updated_at": null, "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/720177b7-a40c-4cff-944e-d6c0749e46a6", "rel": "self"}, {"href": "http://localhost/nodes/720177b7-a40c-4cff-944e-d6c0749e46a6", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/720177b7-a40c-4cff-944e-d6c0749e46a6/ports", "rel": "self"}, {"href": "http://localhost/nodes/720177b7-a40c-4cff-944e-d6c0749e46a6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/720177b7-a40c-4cff-944e-d6c0749e46a6/states", "rel": "self"}, {"href": "http://localhost/nodes/720177b7-a40c-4cff-944e-d6c0749e46a6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/720177b7-a40c-4cff-944e-d6c0749e46a6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/720177b7-a40c-4cff-944e-d6c0749e46a6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/720177b7-a40c-4cff-944e-d6c0749e46a6/volume", "rel": "self"}, {"href": "http://localhost/nodes/720177b7-a40c-4cff-944e-d6c0749e46a6/volume", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format [0.416390s] ... 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-591b54dc-ae0f-49e6-bb2e-91d51f629a75
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found [0.063741s] ... 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-d91b7759-e476-43e7-bcc7-0e9f7dfcfebd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee_not_allowed [0.071271s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?lessee=project1 WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-b159889a-39b3-4744-bebc-25291d290978
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.65\", \"debuginfo\": null}"}
GET /v1/nodes/detail?lessee=project1 WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-6966a48c-dcb8-4fa7-a570-ccddf2984e02
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.65\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version [0.042033s] ... 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-97a9a57c-2e37-4c78-92d2-b385f11fb719
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_system_scope [0.102758s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '6ed5ea16-6e71-4e99-a4f5-b80fb3921c33', '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/6ed5ea16-6e71-4e99-a4f5-b80fb3921c33
Openstack-Request-Id: req-cb90aec7-7ee1-4eb6-9508-1eb447d1aec1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6ed5ea16-6e71-4e99-a4f5-b80fb3921c33", "created_at": "2025-05-29T16:56:08.478878+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6ed5ea16-6e71-4e99-a4f5-b80fb3921c33", "rel": "self"}, {"href": "http://localhost/runbooks/6ed5ea16-6e71-4e99-a4f5-b80fb3921c33", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/6ed5ea16-6e71-4e99-a4f5-b80fb3921c33 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1aa2107a-9948-49c3-b6e9-f17520468d08
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6ed5ea16-6e71-4e99-a4f5-b80fb3921c33", "created_at": "2025-05-29T16:56:08.478878+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6ed5ea16-6e71-4e99-a4f5-b80fb3921c33", "rel": "self"}, {"href": "http://localhost/runbooks/6ed5ea16-6e71-4e99-a4f5-b80fb3921c33", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format [0.056499s] ... 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-1813220a-ad20-45b1-aac5-8f9d548ad99e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner [0.074224s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?owner=fred WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3cf2ab84-8501-492b-9e62-3d77f8082ac3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"nodes": [{"uuid": "9ef28e35-2612-4c0b-b9cf-4baad3e1da6d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/9ef28e35-2612-4c0b-b9cf-4baad3e1da6d", "rel": "self"}, {"href": "http://localhost/nodes/9ef28e35-2612-4c0b-b9cf-4baad3e1da6d", "rel": "bookmark"}]}]}
GET /v1/nodes?owner=bob WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-efa4da33-6c68-46ea-8811-19ef4e791238
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"nodes": [{"uuid": "c016519a-2d36-424e-ab12-144d98690e5a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c016519a-2d36-424e-ab12-144d98690e5a", "rel": "self"}, {"href": "http://localhost/nodes/c016519a-2d36-424e-ab12-144d98690e5a", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?owner=fred WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ac77fc89-2ac1-4e37-ad97-21fd11e39c29
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"nodes": [{"uuid": "9ef28e35-2612-4c0b-b9cf-4baad3e1da6d", "created_at": "2025-05-29T16:56:08.513231+00:00", "updated_at": null, "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/9ef28e35-2612-4c0b-b9cf-4baad3e1da6d", "rel": "self"}, {"href": "http://localhost/nodes/9ef28e35-2612-4c0b-b9cf-4baad3e1da6d", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9ef28e35-2612-4c0b-b9cf-4baad3e1da6d/ports", "rel": "self"}, {"href": "http://localhost/nodes/9ef28e35-2612-4c0b-b9cf-4baad3e1da6d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9ef28e35-2612-4c0b-b9cf-4baad3e1da6d/states", "rel": "self"}, {"href": "http://localhost/nodes/9ef28e35-2612-4c0b-b9cf-4baad3e1da6d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9ef28e35-2612-4c0b-b9cf-4baad3e1da6d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9ef28e35-2612-4c0b-b9cf-4baad3e1da6d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9ef28e35-2612-4c0b-b9cf-4baad3e1da6d/volume", "rel": "self"}, {"href": "http://localhost/nodes/9ef28e35-2612-4c0b-b9cf-4baad3e1da6d/volume", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?owner=bob WITH {} GOT Response: 200 OK
Content-Type: 
    application/json
Openstack-Request-Id: req-2834efb8-6fb9-4eb3-9eb9-dd4b17ed0fb0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"nodes": [{"uuid": "c016519a-2d36-424e-ab12-144d98690e5a", "created_at": "2025-05-29T16:56:08.515015+00:00", "updated_at": null, "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/c016519a-2d36-424e-ab12-144d98690e5a", "rel": "self"}, {"href": "http://localhost/nodes/c016519a-2d36-424e-ab12-144d98690e5a", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c016519a-2d36-424e-ab12-144d98690e5a/ports", "rel": "self"}, {"href": "http://localhost/nodes/c016519a-2d36-424e-ab12-144d98690e5a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c016519a-2d36-424e-ab12-144d98690e5a/states", "rel": "self"}, {"href": "http://localhost/nodes/c016519a-2d36-424e-ab12-144d98690e5a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c016519a-2d36-424e-ab12-144d98690e5a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c016519a-2d36-424e-ab12-144d98690e5a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c016519a-2d36-424e-ab12-144d98690e5a/volume", "rel": "self"}, {"href": "http://localhost/nodes/c016519a-2d36-424e-ab12-144d98690e5a/volume", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit [0.098443s] ... 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-232fb8ff-e08a-4845-91bb-1656aa24cd11
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"too many traits\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_standard_trait_name [0.076803s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'HW_CPU_X86_VMX', 'uuid': '0270bb58-ea32-4899-8af2-2bfd26e9f96f', '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/0270bb58-ea32-4899-8af2-2bfd26e9f96f
Openstack-Request-Id: req-d8d94b04-71be-454b-b12d-d07816fd47c1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0270bb58-ea32-4899-8af2-2bfd26e9f96f", "created_at": "2025-05-29T16:56:08.571081+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0270bb58-ea32-4899-8af2-2bfd26e9f96f", "rel": "self"}, {"href": "http://localhost/runbooks/0270bb58-ea32-4899-8af2-2bfd26e9f96f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed [0.034378s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?owner=fred WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-b7d48496-fd12-4f86-a4d0-4297872c08ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\", \"debuginfo\": null}"}
GET /v1/nodes/detail?owner=fred WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-01b45ebf-dbed-4d3a-bbc4-ed53e4618487
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version [0.046081s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 WITH {} GOT Response: 405 Method Not Allowed
Allow: DELETE, GET, PATCH, POST
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version [0.079207s] ... 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-2ac7ebce-8823-4e03-8b55-b4965437c497
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'properties': {'bond_prop': 123}} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-bb233b3a-456e-4182-a651-2190265b6c64
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_step_string_order [0.058981s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '5032af83-7cc4-4967-8cb7-45d7ce528663', '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/5032af83-7cc4-4967-8cb7-45d7ce528663
Openstack-Request-Id: req-8a351a8b-ba83-442f-92a7-bc918ef01d27
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "5032af83-7cc4-4967-8cb7-45d7ce528663", "created_at": "2025-05-29T16:56:08.629353+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/5032af83-7cc4-4967-8cb7-45d7ce528663", "rel": "self"}, {"href": "http://localhost/runbooks/5032af83-7cc4-4967-8cb7-45d7ce528663", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": "1"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state [0.075235s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?provision_state=available WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e5525739-48ef-4883-9824-f6e6b948a6e9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.9
{"nodes": [{"uuid": "130c11f3-92bf-4c3d-829a-2d93c5c9e084", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/130c11f3-92bf-4c3d-829a-2d93c5c9e084", "rel": "self"}, {"href": "http://localhost/nodes/130c11f3-92bf-4c3d-829a-2d93c5c9e084", "rel": "bookmark"}]}]}
GET /v1/nodes?provision_state=deploying WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2986f78c-0b43-4880-a763-5928d461562b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.9
{"nodes": [{"uuid": "61e6defe-db48-4297-a2f2-f28a12b9cea0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "deploying", "name": null, "links": [{"href": "http://localhost/v1/nodes/61e6defe-db48-4297-a2f2-f28a12b9cea0", "rel": "self"}, {"href": "http://localhost/nodes/61e6defe-db48-4297-a2f2-f28a12b9cea0", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties [0.072080s] ... 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-6317844d-f906-4848-b31c-572cd6fe0b4e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:08.689523+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "802.3ad", "name": "fooname", "properties": {"bond_prop": 123}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_steps_invalid_duplicate [0.069984s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '2840e11b-970c-4006-b322-089ebebaa6b8', '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-3bb90b8f-1db2-4819-9f63-6d1e50ea5382
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait [0.099941s] ... 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-7d170fd2-8f22-476d-b289-5f315b77a53f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for trait: 'bad_trait' is not valid under any of the given schemas. Possible root cause: 'bad_trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed [0.059814s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?provision_state=test WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-c29770c8-d769-42bf-a068-6d6c63d543cc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.8
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch [0.025317s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid [0.060798s] ... 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-a7e636bf-c1c2-4efc-b8ba-8d930c9396dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create portgroup with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr [0.049244s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok [0.067193s] ... 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-e8f69ccd-0044-475e-a26f-da2354834315
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:08.810629+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-3bad0fe1-dff1-4705-a2a7-6c556a24f857
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:08.810629+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class [0.109305s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?resource_class=foo WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e64e49ce-1e70-4a9c-bb7f-2e43231e8a57
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "5cf88648-cf9f-4929-a5d8-839aeb7266c2", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/5cf88648-cf9f-4929-a5d8-839aeb7266c2", "rel": "self"}, {"href": "http://localhost/nodes/5cf88648-cf9f-4929-a5d8-839aeb7266c2", "rel": "bookmark"}]}]}
GET /v1/nodes?resource_class=bar WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-32bf92af-1b1e-4d73-9890-a34f5abd46cb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "ffc804bd-1b8c-4a59-8389-6b784c2f3b95", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/ffc804bd-1b8c-4a59-8389-6b784c2f3b95", "rel": "self"}, {"href": "http://localhost/nodes/ffc804bd-1b8c-4a59-8389-6b784c2f3b95", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent [0.055565s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait [0.122409s] ... 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-d71983ae-e19b-43ac-b2b4-783d2d5faa68
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for trait: 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT' is too long\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item [0.063475s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits [0.070994s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content
Openstack-Request-Id: req-4818523a-be61-46eb-8aa1-8473faf54594
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail [0.087981s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?resource_class=foo WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-50bbd85b-e64c-4ca3-9b40-731228d1dc96
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "b19f4662-4467-41fd-8bbb-b3366852a5b0", "created_at": "2025-05-29T16:56:08.867740+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/b19f4662-4467-41fd-8bbb-b3366852a5b0", "rel": "self"}, {"href": "http://localhost/nodes/b19f4662-4467-41fd-8bbb-b3366852a5b0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b19f4662-4467-41fd-8bbb-b3366852a5b0/ports", "rel": "self"}, {"href": "http://localhost/nodes/b19f4662-4467-41fd-8bbb-b3366852a5b0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b19f4662-4467-41fd-8bbb-b3366852a5b0/states", "rel": "self"}, {"href": "http://localhost/nodes/b19f4662-4467-41fd-8bbb-b3366852a5b0/states", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?resource_class=bar WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dca15bb1-cf74-4c22-a724-bdb1ab47c1ed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "521dd71f-74f5-44bc-bee0-75efdb123b37", "created_at": "2025-05-29T16:56:08.875218+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/521dd71f-74f5-44bc-bee0-75efdb123b37", "rel": "self"}, {"href": "http://localhost/nodes/521dd71f-74f5-44bc-bee0-75efdb123b37", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/521dd71f-74f5-44bc-bee0-75efdb123b37/ports", "rel": "self"}, {"href": "http://localhost/nodes/521dd71f-74f5-44bc-bee0-75efdb123b37/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/521dd71f-74f5-44bc-bee0-75efdb123b37/states", "rel": "self"}, {"href": "http://localhost/nodes/521dd71f-74f5-44bc-bee0-75efdb123b37/states", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address [0.099330s] ... 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-1ec3c3f2-3902-4c99-b01d-37809c6d3e18
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:08.880088+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-77c630cf-ef14-4d3c-914e-51760b2b728f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:08.880088+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version [0.039355s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?resource_class=fake WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-6722e4db-a3b8-4593-9ee4-1089760d4739
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version [0.045715s] ... 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-01e28a4d-7b7b-4ba5-ae09-16df913113b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid [0.094325s] ... 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-6c887523-f956-437b-8358-35232e0211a3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: 'node_uuid' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail [0.070970s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?resource_class=fake WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-e1471199-d4be-474a-8445-dfbd5851aa6b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed [0.103634s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?traits=CUSTOM_TRAIT_1 WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f4a69393-e53e-4c90-9708-5e57e7c9462c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis [0.169353s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content
Openstack-Request-Id: req-45a8de3e-676e-4b46-9ea3-cbfe58f46143
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found [0.126356s] ... 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-ab44cf26-0022-4add-9c6d-4fc5ef36f4c0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail [0.113232s] ... 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-31678ad8-6338-4a90-8b2a-ffb65ea633e1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_complex_path [0.371811s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait [0.137975s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 204 No Content
Openstack-Request-Id: req-d24add99-6b9a-4ba0-b13d-c2671622baf0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_slash [0.030215s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_tilde [0.048449s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_incomplete_escape [0.047999s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 [0.266018s] ... 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-8db104fb-10a8-495a-ad98-a207fb7c6fc9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.23
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7cef72bb-ded4-4f10-8659-eb50292061b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.23
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one [0.163069s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e42a5ddb-f0b5-40fc-8ab2-d8c4fc072a53
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:09.405656+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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_utils.TestApiUtils.test_apply_jsonpatch_with_invalid_escape_sequence [0.061094s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_configdrive_dict [0.051540s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8ce2452d-85a3-4126-9ddd-fa8c9a1aaac8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:09.453921+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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_utils.TestApiUtils.test_apply_jsonpatch_with_slash [0.054995s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields [0.046666s] ... 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-5beb4b2a-f52c-484b-8ad4-10c75643b723
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra [0.129310s] ... 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-bcefacba-8519-4093-b22e-3d21d2fe23de
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:09.506943+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-f4747476-39bc-4974-b6ba-3269de6cdfd7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:09.506943+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_as_list [0.040287s] ... 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-ca5b943c-6276-4680-948e-a234db21b2c1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter [0.043867s] ... 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-c68d5d50-79dd-402c-a3d6-e1f55e863dd7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: 52-54-00-cf-2d-31\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_tilde [0.085321s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password [0.045649s] ... 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-687d882b-5383-484d-96e0-9fa3694fc55d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"driver_info": {"fake_password": "******"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields [0.050711s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_deleted_chassis [0.050798s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d3c169c7-2e1b-43cc-a8bc-218e037c56dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:09.638906+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping [0.079455s] ... 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-17370358-ba45-4142-b129-7152f71035b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:09.661725+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail [0.049196s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked [0.438619s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-d58d6e6b-262c-4d33-951d-8e974f8cef77
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json_in_name [0.057933s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/node.json.json WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6a9564cf-1389-4766-b951-afbdbacdd958
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:09.703216+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success [0.024424s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup [0.073223s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=d48fdbc0-fa4d-466d-860c-190a0de8540c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-293534ae-b827-41cb-867f-ee9007f157f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "d48fdbc0-fa4d-466d-860c-190a0de8540c", "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/d48fdbc0-fa4d-466d-860c-190a0de8540c", "rel": "self"}, {"href": "http://localhost/nodes/d48fdbc0-fa4d-466d-860c-190a0de8540c", "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=d48fdbc0-fa4d-466d-860c-190a0de8540c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7619ce9d-6d32-4489-81ba-56f5cf3e976b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "d48fdbc0-fa4d-466d-860c-190a0de8540c", "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/d48fdbc0-fa4d-466d-860c-190a0de8540c", "rel": "self"}, {"href": "http://localhost/nodes/d48fdbc0-fa4d-466d-860c-190a0de8540c", "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=d48fdbc0-fa4d-466d-860c-190a0de8540c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0704caae-20ff-4866-981d-c9ed0113aead
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "d48fdbc0-fa4d-466d-860c-190a0de8540c", "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/d48fdbc0-fa4d-466d-860c-190a0de8540c", "rel": "self"}, {"href": "http://localhost/nodes/d48fdbc0-fa4d-466d-860c-190a0de8540c", "rel": "bookmark"}]}, "config": {
    "metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path [0.021323s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove [0.028608s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses [0.067957s] ... 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-2cef4eac-2250-427d-96dc-fd5ef07b8109
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "94ec3d73-9a2c-4f9c-86a5-41aecfb9f941", "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/94ec3d73-9a2c-4f9c-86a5-41aecfb9f941", "rel": "self"}, {"href": "http://localhost/nodes/94ec3d73-9a2c-4f9c-86a5-41aecfb9f941", "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_node.TestTraits.test_delete_trait_fails_if_node_not_found [0.096667s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2d2659ed-aa97-42d5-9b15-8d5cff117087
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success [0.059176s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace [0.022730s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid [0.063152s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?node_uuid=9b0c9c8d-a966-4b04-a91e-fd83412e9780 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7973cbb1-c145-4f3e-8e11-0a7b23968903
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "9b0c9c8d-a966-4b04-a91e-fd83412e9780", "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/9b0c9c8d-a966-4b04-a91e-fd83412e9780", "rel": "self"}, {"href": "http://localhost/nodes/9b0c9c8d-a966-4b04-a91e-fd83412e9780", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "xyzabc", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath [0.029524s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found [0.097544s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits/CUSTOM_12 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-7715eb12-faac-40b9-8c53-1bedb4b69e84
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a trait 'CUSTOM_12'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success [0.030971s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid [0.047436s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=f4b8f29d-5c43-450e-b6e4-755fda1c4150 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5555d9e9-4173-4df6-b576-65a266d02f89
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "f4b8f29d-5c43-450e-b6e4-755fda1c4150", "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/f4b8f29d-5c43-450e-b6e4-755fda1c4150", "rel": "self"}, {"href": "http://localhost/nodes/f4b8f29d-5c43-450e-b6e4-755fda1c4150", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "this_thing_on?", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success [0.034593s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address [0.051325s] ... 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-34dc37bd-9f34-4751-bd4c-55b2110659d2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "51ce39a4-5769-4e55-8506-af677f902998", "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/51ce39a4-5769-4e55-8506-af677f902998", "rel": "self"}, {"href": "http://localhost/nodes/51ce39a4-5769-4e55-8506-af677f902998", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "123456", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath [0.030370s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version [0.095924s] ... 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-def93b09-6e75-41df-84ac-2e0d6532aef6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json [0.298935s] ... 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-a76285e5-e20e-4bb5-9ec9-eed1665000d1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:09.995637+00:00", "updated_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"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success [0.029748s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_invalid_input_addresses [0.051762s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=meow1 WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-08400cba-aa8a-4d58-8ec1-06e8b450bd6b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success [0.031012s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_invalid_input_node_uuid [0.043705s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?node_uuid=meow1 WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-816857ce-753a-4769-af09-aa6601935e7a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: meow1\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits [0.074903s] ... 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-3a407429-8a77-47f3-a481-efc8697e4df9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"traits": ["CUSTOM_1", "CUSTOM_2"]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_update_changed_fields [0.039491s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name [0.084965s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/node.json WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8adec6be-8034-4821-acf1-203f5f7a7123
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:10.069076+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields [0.037090s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup [0.065309s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=4ce88942-e16b-4607-af07-c6a8cd8d4816 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-14c09e5e-c449-487f-912f-1eea1c74357d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "4ce88942-e16b-4607-af07-c6a8cd8d4816", "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/4ce88942-e16b-4607-af07-c6a8cd8d4816", "rel": "self"}, {"href": "http://localhost/nodes/4ce88942-e16b-4607-af07-c6a8cd8d4816", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "234567890", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version [0.055780s] ... 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-dde30331-9c25-4ab0-a020-28eccabb0998
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_special_fields [0.031479s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found [0.041333s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/badname/traits WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8ffe6ec0-e1de-4692-ac2c-e686d565949b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node badname could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_not_found [0.096284s] ... 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-02ec65fd-3a05-4334-bebc-1ab33d4fbbdd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found [0.072509s] ... 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-49d28a5f-6e66-4d93-89d5-de8c7c272c6a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema [0.051345s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body [0.072267s] ... 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-744881dd-ae46-4395-a247-7dea95bae4c2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: Additional properties are not allowed ('trait' was unexpected)\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_sanitize_dict [0.046417s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided [0.060663s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b1421cc7-0ac4-437c-862c-f99d2b03c1a5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_no_agent_secret [0.077077s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-45a8be00-3435-4627-9d4e-13739498cb74
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:10.262419+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"agent_secret_token": "******", "agent_secret_token_pregenerated": "******"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit [0.043943s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix [0.048511s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/test.1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-968de27d-5196-4b4a-bc38-ff59d64292d6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:10.314208+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "test.1", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 [0.070465s] ... 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-66e2d026-ba6c-4214-944c-635ad5154224
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes/<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}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir [0.030402s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields [0.038421s] ... 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-4b1caeac-1836-422a-b52f-8abe6656e4a5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"owner": "fred", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy [0.030239s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version [0.106208s] ... 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-1982e81e-873e-44ae-a754-973f617d99fd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy_forbidden [0.032912s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits [0.088298s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content
Openstack-Request-Id: req-680c9e26-5b45-4361-9f09-d916e12fdee2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields [0.061422s] ... 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-047f7618-71a1-4f9b-9de7-a281902893ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"protected": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy [0.029159s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup [0.061885s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=7c3d05fa-2967-4fd8-bf55-aa97f9bc07e1 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-53ba1cf7-bf9b-48af-96ec-7f3f309c52a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden [0.025664s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields [0.050729s] ... 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-acf923a6-041d-46a2-bb40-421a3519b2d1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"retired": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async [0.029673s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links [0.050079s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a3a56e20-9841-41df-814c-e2cea0d4b767
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "dbfd9400-388a-4b0d-a7a2-05b7169ce9a5", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/dbfd9400-388a-4b0d-a7a2-05b7169ce9a5", "rel": "self"}, {"href": "http://localhost/runbooks/dbfd9400-388a-4b0d-a7a2-05b7169ce9a5", "rel": "bookmark"}]}, {"uuid": "6c30f304-f7b3-4f01-8e8c-69d9bfd772fa", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/6c30f304-f7b3-4f01-8e8c-69d9bfd772fa", "rel": "self"}, {"href": "http://localhost/runbooks/6c30f304-f7b3-4f01-8e8c-69d9bfd772fa", "rel": "bookmark"}]}, {"uuid": "e46883f7-8b36-4edc-a49f-e173dbe4917a", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/e46883f7-8b36-4edc-a49f-e173dbe4917a", "rel": "self"}, {"href": "http://localhost/runbooks/e46883f7-8b36-4edc-a49f-e173dbe4917a", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=e46883f7-8b36-4edc-a49f-e173dbe4917a"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty [0.097427s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits WITH {'traits': []} GOT Response: 204 No Content
Openstack-Request-Id: req-03dada67-7f9a-4660-af13-a43a820f62db
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links_custom_fields [0.052584s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?fields=uuid,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-420c973b-ca6e-40de-9969-bef0a70b8d46
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "3167a8c0-77e1-416d-8a88-e495ed5e7115", "links": [{"href": "http://localhost/v1/runbooks/3167a8c0-77e1-416d-8a88-e495ed5e7115", "rel": "self"}, {"href": "http://localhost/runbooks/3167a8c0-77e1-416d-8a88-e495ed5e7115", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "83dedc27-1624-403e-b741-a0e216481a81", "links": [{"href": "http://localhost/v1/runbooks/83dedc27-1624-403e-b741-a0e216481a81", "rel": "self"}, {"href": "http://localhost/runbooks/83dedc27-1624-403e-b741-a0e216481a81", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "2e46b3be-1a4b-44fa-83b4-134728ed7532", "links": [{"href": "http://localhost/v1/runbooks/2e46b3be-1a4b-44fa-83b4-134728ed7532", "rel": "self"}, {"href": "http://localhost/runbooks/2e46b3be-1a4b-44fa-83b4-134728ed7532", "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=2e46b3be-1a4b-44fa-83b4-134728ed7532"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields [0.076305s] ... 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-4365fc9e-66ef-4370-a5ab-fab8cef3f219
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"storage_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version [0.057782s] ... 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\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version [0.041425s] ... 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-a3a2438b-4689-4413-977c-6dcae682b8a1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync [0.112080s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links_default_limit [0.065508s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5ed705c5-064f-4940-8d95-aefd2f9f559b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "8e59903f-b774-491b-b40c-ea2e98f56d9e", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/8e59903f-b774-491b-b40c-ea2e98f56d9e", "rel": "self"}, {"href": "http://localhost/runbooks/8e59903f-b774-491b-b40c-ea2e98f56d9e", "rel": "bookmark"}]}, {"uuid": "cb6cd7d7-b293-4bd8-9f15-50da415d0da0", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/cb6cd7d7-b293-4bd8-9f15-50da415d0da0", "rel": "self"}, {"href": "http://localhost/runbooks/cb6cd7d7-b293-4bd8-9f15-50da415d0da0", "rel": "bookmark"}]}, {"uuid": "816f0633-37d3-44d4-9751-ae648f8f558e", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/816f0633-37d3-44d4-9751-ae648f8f558e", "rel": "self"}, {"href": "http://localhost/runbooks/816f0633-37d3-44d4-9751-ae648f8f558e", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=816f0633-37d3-44d4-9751-ae648f8f558e"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait [0.057681s] ... 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-e52d2ece-4765-4f42-9b7b-380e506798ed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'BAD_TRAIT' is not valid under any of the given schemas. Possible root cause: 'BAD_TRAIT' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names [0.039504s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_query [0.043699s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f70f6546-fe8c-45fa-a537-93db6d9332e3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "4ba33546-72c1-4ecd-97ed-1047aea0880c", "created_at": "2025-05-29T16:56:10.643762+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4ba33546-72c1-4ecd-97ed-1047aea0880c", "rel": "self"}, {"href": "http://localhost/runbooks/4ba33546-72c1-4ecd-97ed-1047aea0880c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices [0.061877s] ... 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-5742aec0-6230-40e2-8824-02a6aa448f65
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"supported_boot_devices": ["pxe"]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified [0.025853s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name [0.038812s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/spam/management/boot_device/supported WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5da5ff8a-8c84-4c01-8d57-c3d2dadf31f5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"supported_boot_devices": ["pxe"]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body [0.069603s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c3e02c10-def6-4569-a2e6-04194c743242
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes/<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}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_query_false [0.060662s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-76e4671e-097f-4191-8558-0f4e61f61ca3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "928bd931-d50b-4a62-bceb-0db333954be8", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/928bd931-d50b-4a62-bceb-0db333954be8", "rel": "self"}, {"href": "http://localhost/runbooks/928bd931-d50b-4a62-bceb-0db333954be8", "rel": "bookmark"}]}]}
GET /v1/runbooks?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c4b65692-0e00-42fb-9d2a-29949e174b71
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "928bd931-d50b-4a62-bceb-0db333954be8", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/928bd931-d50b-4a62-bceb-0db333954be8", "rel": "self"}, {"href": "http://localhost/runbooks/928bd931-d50b-4a62-bceb-0db333954be8", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async [0.058489s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported [0.047723s] ... 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-5c29cabe-f691-4601-9994-01580f8cb7ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach [0.031273s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait [0.056762s] ... 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-cdd48074-1fb4-4b3e-83d7-01c607990abb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT' is too long\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_sort_key_allowed [0.065999s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?sort_key=name&detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4cd949e5-328e-4a3f-8a38-b6e16543990e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "3cd687f5-5265-4433-a015-99515767682e", "created_at": "2025-05-29T16:56:10.764539+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/3cd687f5-5265-4433-a015-99515767682e", "rel": "self"}, {"href": "http://localhost/runbooks/3cd687f5-5265-4433-a015-99515767682e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "850170f0-daf2-4e64-a331-ab80a026b51d", "created_at": "2025-05-29T16:56:10.762698+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/850170f0-daf2-4e64-a331-ab80a026b51d", "rel": "self"}, {"href": "http://localhost/runbooks/850170f0-daf2-4e64-a331-ab80a026b51d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "000bfc5c-3426-4a99-9d84-95499d46fbd8", "created_at": "2025-05-29T16:56:10.756396+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/000bfc5c-3426-4a99-9d84-95499d46fbd8", "rel": "self"}, {"href": "http://localhost/runbooks/000bfc5c-3426-4a99-9d84-95499d46fbd8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte [0.042593s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators [0.068282s] ... 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-b84a0a83-c740-4c1a-bbba-d0def976c3a4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"indicators": [{"name": "led@chassis", "component": "chassis", "readonly": true, "states": ["OFF", "ON"], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis [0.067773s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content
Openstack-Request-Id: req-dc814297-7f8d-41a6-9735-f2d789c29e51
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_using_query_and_fields [0.081265s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?detail=True&fields=name WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-a270fd2d-0a1e-4c08-837f-d8f7c61fa758
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection [0.031443s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_iface_not_supported [0.062044s] ... 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-f22935bc-eee1-4e99-9c64-4e4db82dfc75
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte [0.089114s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_using_query_false_and_fields [0.035709s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?detail=False&fields=steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f0cb05ee-36fe-4540-b39c-30cef9c0d97d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"links": [{"href": "http://localhost/v1/runbooks/bfdc6ec2-b270-4d8b-8f1a-433f443e760f", "rel": "self"}, {"href": "http://localhost/runbooks/bfdc6ec2-b270-4d8b-8f1a-433f443e760f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync [0.043948s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning [0.059150s] ... 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-26e8123b-d07b-445f-a924-62801d4c5e1b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{"indicators": [{"name": "led@chassis", "component": "chassis", "readonly": true, "states": ["OFF", "ON"], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links [0.069330s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-43f79b37-52a3-4711-83f1-bb3f39188221
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "66b4f8a1-dbbd-42cb-9e21-cfd3a009ad2d", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/66b4f8a1-dbbd-42cb-9e21-cfd3a009ad2d", "rel": "self"}, {"href": "http://localhost/portgroups/66b4f8a1-dbbd-42cb-9e21-cfd3a009ad2d", "rel": "bookmark"}]}, {"uuid": "fafb4572-c6ae-4376-85cb-073e4fa215e6", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/fafb4572-c6ae-4376-85cb-073e4fa215e6", "rel": "self"}, {"href": "http://localhost/portgroups/fafb4572-c6ae-4376-85cb-073e4fa215e6", "rel": "bookmark"}]}, {"uuid": "c4e72ed5-46d7-41d6-ace9-7694ddf68cd1", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/c4e72ed5-46d7-41d6-ace9-7694ddf68cd1", "rel": "self"}, {"href": "http://localhost/portgroups/c4e72ed5-46d7-41d6-ace9-7694ddf68cd1", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=c4e72ed5-46d7-41d6-ace9-7694ddf68cd1"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_empty [0.058467s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f1203a98-bef2-4935-aa55-1dcd4f18cb8b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": []}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields [0.048001s] ... 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-faa3b43c-2b79-4960-84af-343a529aaeb0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"traits": [], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_all_invalid_api_version [0.031926s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow runbooks\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields [0.070088s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?fields=address,uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f551629a-e50a-4cd5-9b59-bb14ffb0bd1d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "a4f7538a-235d-484a-889b-e19fc004ca51", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/a4f7538a-235d-484a-889b-e19fc004ca51", "rel": "self"}, {"href": "http://localhost/portgroups/a4f7538a-235d-484a-889b-e19fc004ca51", "rel": "bookmark"}]}, {"uuid": "810b43d7-d630-4166-82c0-8573f7bdf240", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/810b43d7-d630-4166-82c0-8573f7bdf240", "rel": "self"}, {"href": "http://localhost/portgroups/810b43d7-d630-4166-82c0-8573f7bdf240", "rel": "bookmark"}]}, {"uuid": "084de32d-0272-4524-8d82-0d05106a9995", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/portgroups/084de32d-0272-4524-8d82-0d05106a9995", "rel": "self"}, {"href": "http://localhost/portgroups/084de32d-0272-4524-8d82-0d05106a9995", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=084de32d-0272-4524-8d82-0d05106a9995"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version [0.045354s] ... 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-fedc0048-7c8d-41f6-a1e4-87c19db2dd3d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_collection_custom_fields [0.045074s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?fields=uuid,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-28e24b68-56b3-4c3e-9ff0-2eeead809307
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "4d9c6be1-c580-4796-bd2e-b6669a37acc4", "links": [{"href": "http://localhost/v1/runbooks/4d9c6be1-c580-4796-bd2e-b6669a37acc4", "rel": "self"}, {"href": "http://localhost/runbooks/4d9c6be1-c580-4796-bd2e-b6669a37acc4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "1a046d48-01f8-4d72-8197-bce19c2ee41a", "links": [{"href": "http://localhost/v1/runbooks/1a046d48-01f8-4d72-8197-bce19c2ee41a", "rel": "self"}, {"href": "http://localhost/runbooks/1a046d48-01f8-4d72-8197-bce19c2ee41a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "2c6d5b33-b4fb-4cc6-b06a-ef0eb19628d9", "links": [{"href": "http://localhost/v1/runbooks/2c6d5b33-b4fb-4cc6-b06a-ef0eb19628d9", "rel": "self"}, {"href": "http://localhost/runbooks/2c6d5b33-b4fb-4cc6-b06a-ef0eb19628d9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume [0.121787s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-280024e4-fb08-4495-a8c5-8f8fd9c7c9ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
GET /v1/volume/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-34b73b4d-6a84-4363-ad16-bec865473a75
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
GET /volume/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fe61c8fb-acfa-4aa5-8ee3-9d6d49f5279f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a4946c4b-1914-4647-ac68-8d87002cfcf0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": []}
GET /volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7c61bb2c-4b96-406d-ac2d-23427af319e4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": []}
GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e9b40ffd-5a4e-4a79-87b4-f66712d9fb5d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": []}
GET /volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d1b34197-c6da-4396-992a-6b2d2639ad0c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": []}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit [0.078967s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a8235f7a-43ac-4911-8ecb-fb8fa76827b6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "ddd434f0-419b-48f9-b081-8d99805b043c", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/ddd434f0-419b-48f9-b081-8d99805b043c", "rel": "self"}, {"href": "http://localhost/portgroups/ddd434f0-419b-48f9-b081-8d99805b043c", "rel": "bookmark"}]}, {"uuid": "9cb93aec-4838-4c75-bd5f-12e8610bd156", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/9cb93aec-4838-4c75-bd5f-12e8610bd156", "rel": "self"}, {"href": "http://localhost/portgroups/9cb93aec-4838-4c75-bd5f-12e8610bd156", "rel": "bookmark"}]}, {"uuid": "05926ed3-e59e-4eb7-84c6-a752be70e84a", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/05926ed3-e59e-4eb7-84c6-a752be70e84a", "rel": "self"}, {"href": "http://localhost/portgroups/05926ed3-e59e-4eb7-84c6-a752be70e84a", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=05926ed3-e59e-4eb7-84c6-a752be70e84a"}
{3} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version [0.038919s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/ WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2a44f306-55e0-4cd3-8fdf-6e170395a1e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_collection_pagination_no_uuid [0.060806s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?fields=name&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ea1f26b6-34d7-492b-adb4-f482d69efe1e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/a8ebea0e-9ade-4f7c-8a65-b8fcac3653e1", "rel": "self"}, {"href": "http://localhost/runbooks/a8ebea0e-9ade-4f7c-8a65-b8fcac3653e1", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/c1ad96cc-19f7-4195-8766-92cdc7b5824e", "rel": "self"}, {"href": "http://localhost/runbooks/c1ad96cc-19f7-4195-8766-92cdc7b5824e", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=c1ad96cc-19f7-4195-8766-92cdc7b5824e"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation [0.079161s] ... 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-be8f4b39-4d0f-4f34-ab8e-47de7e192f2c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "allocation_uuid": "fcf1c2c4-0455-4cfe-ad1e-6a23126f2f1e"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_custom_fields_invalid_fields [0.042965s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/e265023c-2032-4b91-b1f5-cc9526a7ec74?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-006d661c-64b4-4d5e-976a-19e162a6b496
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid [0.053564s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content
Openstack-Request-Id: req-ca811772-769a-4d0a-bb89-4d5bac841df8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail [0.062357s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-21d4138e-d6c1-4d8d-a00a-c1e46b59cf07
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:11.142917+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.053309s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aeb1c6c0-2898-4db5-9cab-e0215f2357e2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.144072+00:00", "updated_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-c3460ddd-f677-46e3-841b-f726d6373e48
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.7
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.144072+00:00", "updated_at": null, "clean_step": {"foo": "bar"}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version [0.054047s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single [0.064676s] ... 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-626761de-acb8-4e45-9d89-c433b1771c3f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one [0.078676s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/9e081ef2-695f-4575-9b5a-d3f5cc24e426 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-818b1c6a-2278-4817-b4a4-2f9934c0f1c0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "9e081ef2-695f-4575-9b5a-d3f5cc24e426", "created_at": "2025-05-29T16:56:11.196750+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/9e081ef2-695f-4575-9b5a-d3f5cc24e426", "rel": "self"}, {"href": "http://localhost/runbooks/9e081ef2-695f-4575-9b5a-d3f5cc24e426", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description [0.079393s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4909e692-a65b-4819-9a7f-343a0acb3b23
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.218896+00:00", "updated_at": null, "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-23cbfc6e-ac11-499f-9e54-4ed54ae6afe3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.218896+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": "useful piece", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, 
    "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state [0.080485s] ... 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-4827fd62-0528-4fba-acfe-bab91409ad40
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector deletion\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"}
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok [0.069772s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0a642faa-4634-4f80-9d28-c5ee2efa4f0c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:11.268795+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.052577s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d292bd82-363c-48de-abf6-12ccb47b409c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.282522+00:00", "updated_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-558b37c9-fe7f-4715-8fd5-6593866c7299
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.3
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.282522+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"foo": "bar"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one_custom_fields [0.080117s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/8f008b07-ad27-4500-9ac3-21b765944818?fields=name,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1e0ff472-985d-449e-abb5-026d1c7cd5c7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/8f008b07-ad27-4500-9ac3-21b765944818", "rel": "self"}, {"href": "http://localhost/runbooks/8f008b07-ad27-4500-9ac3-21b765944818", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked [0.061765s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-178daa03-891c-4592-862f-85b435f7f459
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection [0.063638s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6cd4986b-0531-4cd0-9562-42ec3f277376
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.349135+00:00", "updated_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-750ea4e4-4c61-46cb-ab67-4397eea08257
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.6
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.349135+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version [0.079198s] ... 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\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one_invalid_api_version [0.063217s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/7f5e1bdc-26a6-4964-bc23-415dbaa24ab6 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\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields [0.065098s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a0a3c007-2f1e-49e9-bc40-a619b19302bb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.415681+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-70aee8f7-c8e3-43c3-bd64-8fdaa2a85806
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.31
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.415681+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": 
    "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links [0.070055s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5875d340-4634-41b6-9f2b-01013b68ae49
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "8e9358d9-a131-4ddb-805e-383512baefbf", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8e9358d9-a131-4ddb-805e-383512baefbf", "rel": "self"}, {"href": "http://localhost/volume/connectors/8e9358d9-a131-4ddb-805e-383512baefbf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e4d07d08-569e-4935-8fbd-67ff523eb51d", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e4d07d08-569e-4935-8fbd-67ff523eb51d", "rel": "self"}, {"href": "http://localhost/volume/connectors/e4d07d08-569e-4935-8fbd-67ff523eb51d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "19f91912-b582-4dd8-997d-8d29019d848b", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/19f91912-b582-4dd8-997d-8d29019d848b", "rel": "self"}, {"href": "http://localhost/volume/connectors/19f91912-b582-4dd8-997d-8d29019d848b", "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=19f91912-b582-4dd8-997d-8d29019d848b"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_links [0.072355s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/1ae9ac8e-1784-4a46-a989-931c8befd9cc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8cd84724-a504-41ff-98b3-462fa5d4a1f8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1ae9ac8e-1784-4a46-a989-931c8befd9cc", "created_at": "2025-05-29T16:56:11.447929+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/1ae9ac8e-1784-4a46-a989-931c8befd9cc", "rel": "self"}, {"href": "http://localhost/runbooks/1ae9ac8e-1784-4a46-a989-931c8befd9cc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/1ae9ac8e-1784-4a46-a989-931c8befd9cc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f5481a62-62da-48d2-a4c4-ddc162e11180
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1ae9ac8e-1784-4a46-a989-931c8befd9cc", "created_at": "2025-05-29T16:56:11.447929+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/1ae9ac8e-1784-4a46-a989-931c8befd9cc", "rel": "self"}, {"href": "http://localhost/runbooks/1ae9ac8e-1784-4a46-a989-931c8befd9cc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /runbooks/1ae9ac8e-1784-4a46-a989-931c8befd9cc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1863c600-e13b-4990-907f-45c30ecc6aa6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1ae9ac8e-1784-4a46-a989-931c8befd9cc", "created_at": "2025-05-29T16:56:11.447929+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/1ae9ac8e-1784-4a46-a989-931c8befd9cc", "rel": "self"}, {"href": "http://localhost/runbooks/1ae9ac8e-1784-4a46-a989-931c8befd9cc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query [0.094096s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-22d52248-e501-4507-a62c-02a30277d2c3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:11.433869+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_name [0.063922s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-71409b3d-f922-49a9-a609-bfb10f5d2c83
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.4
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.481103+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-4bb9d91b-0cac-4ba7-b01b-6dea35ee5c2c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.481103+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_runbook.TestListRunbooks.test_many [0.057364s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-815e440c-de24-40c2-9a1d-2d56925c8f5a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "1502a245-6e6b-4546-8684-4abc88037fb0", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/1502a245-6e6b-4546-8684-4abc88037fb0", "rel": "self"}, {"href": "http://localhost/runbooks/1502a245-6e6b-4546-8684-4abc88037fb0", "rel": "bookmark"}]}, {"uuid": "a80fa8d1-48b3-45fb-94ac-03fc06ae7fd5", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/a80fa8d1-48b3-45fb-94ac-03fc06ae7fd5", "rel": "self"}, {"href": "http://localhost/runbooks/a80fa8d1-48b3-45fb-94ac-03fc06ae7fd5", "rel": "bookmark"}]}, {"uuid": "971bcaac-20ba-4151-b205-b3f816d626d0", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/971bcaac-20ba-4151-b205-b3f816d626d0", "rel": "self"}, {"href": "http://localhost/runbooks/971bcaac-20ba-4151-b205-b3f816d626d0", "rel": "bookmark"}]}, {"uuid": "25ed6261-4ef9-4dd0-9e47-8f7be6581446", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/runbooks/25ed6261-4ef9-4dd0-9e47-8f7be6581446", "rel": "self"}, {"href": "http://localhost/runbooks/25ed6261-4ef9-4dd0-9e47-8f7be6581446", "rel": "bookmark"}]}, {"uuid": "3116ede0-8fd8-42cb-a4f7-2767f71a8262", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/runbooks/3116ede0-8fd8-42cb-a4f7-2767f71a8262", "rel": "self"}, {"href": "http://localhost/runbooks/3116ede0-8fd8-42cb-a4f7-2767f71a8262", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false [0.096559s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-58e772db-53e3-4401-a53f-f3589a0ffb87
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
GET /v1/portgroups?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-02d6b41e-25f7-43c2-9e59-d48c18b5bc8b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface [0.103412s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ff284a50-d19d-4e89-9c4e-b4da0e383c24
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.19
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.569328+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-bd14948d-0477-4e8e-a9cd-87cfd339a109
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.569328+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"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields [0.169017s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c102d4f3-886d-4033-8c7c-58c5ff969c30
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "ccd3ddf6-7131-4b06-809c-0571ded67e7b", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/ccd3ddf6-7131-4b06-809c-0571ded67e7b", "rel": "self"}, {"href": "http://localhost/volume/connectors/ccd3ddf6-7131-4b06-809c-0571ded67e7b", "rel": "bookmark"}]}, {"uuid": "1674843d-f477-4250-b806-cac5a029b233", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/1674843d-f477-4250-b806-cac5a029b233", "rel": "self"}, {"href": "http://localhost/volume/connectors/1674843d-f477-4250-b806-cac5a029b233", "rel": "bookmark"}]}, {"uuid": "88827ec4-8946-4986-a183-94e39be08749", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/88827ec4-8946-4986-a183-94e39be08749", "rel": "self"}, {"href": "http://localhost/volume/connectors/88827ec4-8946-4986-a183-94e39be08749", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=88827ec4-8946-4986-a183-94e39be08749"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed [0.047085s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-51dd6ccc-ab92-4d1e-a298-033ad22273d2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "1576846b-7eb8-4398-a4cd-8733f3a3b283", "created_at": "2025-05-29T16:56:11.613372+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/1576846b-7eb8-4398-a4cd-8733f3a3b283", "rel": "self"}, {"href": "http://localhost/portgroups/1576846b-7eb8-4398-a4cd-8733f3a3b283", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/1576846b-7eb8-4398-a4cd-8733f3a3b283/ports", "rel": "self"}, {"href": "http://localhost/portgroups/1576846b-7eb8-4398-a4cd-8733f3a3b283/ports", "rel": "bookmark"}]}, {"uuid": "bb49667b-8fcb-4fb8-b5dd-ff04c11074d2", "created_at": "2025-05-29T16:56:11.610037+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/bb49667b-8fcb-4fb8-b5dd-ff04c11074d2", "rel": "self"}, {"href": "http://localhost/portgroups/bb49667b-8fcb-4fb8-b5dd-ff04c11074d2", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/bb49667b-8fcb-4fb8-b5dd-ff04c11074d2/ports", "rel": "self"}, {"href": "http://localhost/portgroups/bb49667b-8fcb-4fb8-b5dd-ff04c11074d2/ports", "rel": "bookmark"}]}, {"uuid": "d6336525-68ab-4d1e-8262-80e1b65ca385", "created_at": "2025-05-29T16:56:11.605861+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/d6336525-68ab-4d1e-8262-80e1b65ca385", "rel": "self"}, {"href": "http://localhost/portgroups/d6336525-68ab-4d1e-8262-80e1b65ca385", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/d6336525-68ab-4d1e-8262-80e1b65ca385/ports", "rel": "self"}, {"href": "http://localhost/portgroups/d6336525-68ab-4d1e-8262-80e1b65ca385/ports", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed [0.053404s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-f135d554-0aaf-4851-a362-31d823c03b24
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class [0.102989s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-56cbef71-f520-4ef1-bbb5-aecf6ad3470c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.669901+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-5f1fa55e-d1c1-4095-b91c-1eb2e44458a5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.669901+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "foo", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields [0.059984s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?detail=True&fields=name WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-e269cb66-6439-4a8d-ae05-da87362fcb6c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit [0.147439s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2463aa40-ac8a-4f0a-b93d-52ad953c292f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "70084f0a-a7d7-41b7-bcdd-a34918ddf4c4", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/70084f0a-a7d7-41b7-bcdd-a34918ddf4c4", "rel": "self"}, {"href": "http://localhost/volume/connectors/70084f0a-a7d7-41b7-bcdd-a34918ddf4c4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "db55a6b6-2a3b-4d6c-a848-b4e34885f4f7", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/db55a6b6-2a3b-4d6c-a848-b4e34885f4f7", "rel": "self"}, {"href": "http://localhost/volume/connectors/db55a6b6-2a3b-4d6c-a848-b4e34885f4f7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "3bf0d66d-813f-46c4-b3d4-5a461d2be8f3", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/3bf0d66d-813f-46c4-b3d4-5a461d2be8f3", "rel": "self"}, {"href": "http://localhost/volume/connectors/3bf0d66d-813f-46c4-b3d4-5a461d2be8f3", "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=3bf0d66d-813f-46c4-b3d4-5a461d2be8f3"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_one [0.237922s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-206673ef-7322-41a6-a327-6ac84e450ca2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "9a72d172-6572-4e45-aed5-a11f0801ac3f", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/9a72d172-6572-4e45-aed5-a11f0801ac3f", "rel": "self"}, {"href": "http://localhost/runbooks/9a72d172-6572-4e45-aed5-a11f0801ac3f", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail [0.058783s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?detail=True&limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6dd95b1a-7461-4599-8996-3e33f55132d2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "8f520662-8559-4ca4-aeff-c94660a1077c", "created_at": "2025-05-29T16:56:11.804056+00:00", "updated_at": null, "connector_id": "test-connector_id-0", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8f520662-8559-4ca4-aeff-c94660a1077c", "rel": "self"}, {"href": "http://localhost/volume/connectors/8f520662-8559-4ca4-aeff-c94660a1077c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "fbffd2d0-51b6-4d69-b484-d0515103a3b7", "created_at": "2025-05-29T16:56:11.804844+00:00", "updated_at": null, "connector_id": "test-connector_id-1", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/fbffd2d0-51b6-4d69-b484-d0515103a3b7", "rel": "self"}, {"href": "http://localhost/volume/connectors/fbffd2d0-51b6-4d69-b484-d0515103a3b7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "c2fea70b-863b-40b8-a27e-dc81d9322be2", "created_at": "2025-05-29T16:56:11.805598+00:00", "updated_at": null, "connector_id": "test-connector_id-2", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/c2fea70b-863b-40b8-a27e-dc81d9322be2", "rel": "self"}, {"href": "http://localhost/volume/connectors/c2fea70b-863b-40b8-a27e-dc81d9322be2", "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=c2fea70b-863b-40b8-a27e-dc81d9322be2"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sensitive_data_masked [0.058606s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/6c72fbab-4bff-4477-ab15-0be845b06d18 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6ba847a8-8ba0-4275-93b3-e2e4e74b5d0f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6c72fbab-4bff-4477-ab15-0be845b06d18", "created_at": "2025-05-29T16:56:11.823914+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6c72fbab-4bff-4477-ab15-0be845b06d18", "rel": "self"}, {"href": "http://localhost/runbooks/6c72fbab-4bff-4477-ab15-0be845b06d18", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "order": 1}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface [0.123146s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-39a54548-e7c4-4a6a-8cff-7da668533760
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.768497+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-dc08c3cc-fae7-4ab3-aa90-c44bd6a1e007
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.768497+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_detail_using_query_false_and_fields [0.090021s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?detail=False&fields=internal_info WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7438bddc-f5e5-41ba-8050-b96016f21d3d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"internal_info": {"bar": "buzz"}, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail [0.070379s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e197ee20-fb1b-4227-8ccd-c80d90e115a3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:11.878107+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits [0.081498s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2b9ed997-9ee2-4d65-834b-014877cdea96
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.882814+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-8ee9414d-3898-41d3-8035-f33f3dafb67f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.882814+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_runbook.TestListRunbooks.test_sort_key [0.091976s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0902af34-577d-4379-8888-b832e1f906d8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "1392ca0c-e88a-48a3-b370-504099ae3bea", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/1392ca0c-e88a-48a3-b370-504099ae3bea", "rel": "self"}, {"href": "http://localhost/runbooks/1392ca0c-e88a-48a3-b370-504099ae3bea", "rel": "bookmark"}]}, {"uuid": "6400d079-cef8-47fe-bc04-a8a595b18809", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/6400d079-cef8-47fe-bc04-a8a595b18809", "rel": "self"}, {"href": "http://localhost/runbooks/6400d079-cef8-47fe-bc04-a8a595b18809", "rel": "bookmark"}]}, {"uuid": "e6e09c22-9bc7-4733-8a97-c84c2b0d82a1", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/e6e09c22-9bc7-4733-8a97-c84c2b0d82a1", "rel": "self"}, {"href": "http://localhost/runbooks/e6e09c22-9bc7-4733-8a97-c84c2b0d82a1", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single [0.055428s] ... 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-f8cd4782-49dc-4fd7-a577-8d4160c0cf55
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version [0.132709s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?detail=True WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-02090dd0-3a71-4aaf-8ffe-d054d31b2e6d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields [0.060626s] ... 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-f5cde9a5-d273-40f4-b598-8a6b7f30a6d6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key_allowed [0.100208s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?sort_key=name&detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-730c8094-2481-40a1-930e-79921c2626e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "bfaa160a-7233-4829-a543-d41d43b60fde", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/bfaa160a-7233-4829-a543-d41d43b60fde", "rel": "self"}, {"href": "http://localhost/runbooks/bfaa160a-7233-4829-a543-d41d43b60fde", "rel": "bookmark"}]}, {"uuid": "ca443f78-0cf7-4c06-936f-8fdd37afa459", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/ca443f78-0cf7-4c06-936f-8fdd37afa459", "rel": "self"}, {"href": "http://localhost/runbooks/ca443f78-0cf7-4c06-936f-8fdd37afa459", "rel": "bookmark"}]}, {"uuid": "7a4e07e7-1f4f-4189-b041-4e3132ff71be", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/runbooks/7a4e07e7-1f4f-4189-b041-4e3132ff71be", "rel": "self"}, {"href": "http://localhost/runbooks/7a4e07e7-1f4f-4189-b041-4e3132ff71be", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume [0.111275s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ad534517-8c55-4860-a1b3-ab8b40306f08
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.31
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.981883+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-43059f3b-4a0e-43fc-92e7-e21be7942047
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:11.981883+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "b
    ookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok [0.054893s] ... 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-4ed5cc83-f849-4909-99e6-2141afb0fad5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:12.051820+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key_invalid [0.043195s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6b9fdc15-5e2b-48e9-83a5-f14449362114
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/runbooks?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f7ee2d8c-fc67-4dc6-bc48-768537e445a4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/runbooks?sort_key=steps WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-a28b49de-91c1-486c-8fa4-56762e04a1dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty [0.112873s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7e014503-0909-4ed2-ab23-d4dc1ce54bfe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": []}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links [0.089315s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/65252b01-37d1-4902-a01e-551d0e1e3489 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-537ef53b-e8aa-4c35-8f0b-2e04ddf5f44e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "65252b01-37d1-4902-a01e-551d0e1e3489", "created_at": "2025-05-29T16:56:12.091480+00:00", "updated_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/65252b01-37d1-4902-a01e-551d0e1e3489", "rel": "self"}, {"href": "http://localhost/nodes/65252b01-37d1-4902-a01e-551d0e1e3489", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/65252b01-37d1-4902-a01e-551d0e1e3489/ports", "rel": "self"}, {"href": "http://localhost/nodes/65252b01-37d1-4902-a01e-551d0e1e3489/ports", "rel": "bookmark"}]}
GET /v1/nodes/65252b01-37d1-4902-a01e-551d0e1e3489 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eeab9fe7-64c7-4dc2-aa1b-b9c020c6b330
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "65252b01-37d1-4902-a01e-551d0e1e3489", "created_at": "2025-05-29T16:56:12.091480+00:00", "updated_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/65252b01-37d1-4902-a01e-551d0e1e3489", "rel": "self"}, {"href": "http://localhost/nodes/65252b01-37d1-4902-a01e-551d0e1e3489", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/65252b01-37d1-4902-a01e-551d0e1e3489/ports", "rel": "self"}, {"href": "http://localhost/nodes/65252b01-37d1-4902-a01e-551d0e1e3489/ports", "rel": "bookmark"}]}
GET /nodes/65252b01-37d1-4902-a01e-551d0e1e3489 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0a222694-6b5e-4fbe-b515-b0af74762daa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "65252b01-37d1-4902-a01e-551d0e1e3489", "created_at": "2025-05-29T16:56:12.091480+00:00", "updated_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/65252b01-37d1-4902-a01e-551d0e1e3489", "rel": "self"}, {"href": "http://localhost/nodes/65252b01-37d1-4902-a01e-551d0e1e3489", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/65252b01-37d1-4902-a01e-551d0e1e3489/ports", "rel": "self"}, {"href": "http://localhost/nodes/65252b01-37d1-4902-a01e-551d0e1e3489/ports", "rel
    ": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false [0.075794s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a89a4033-02ce-4369-b6c2-fc11a8b5c1aa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url [0.058504s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/513f93b8-df40-4652-89c4-1d09b85a9a52 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-27acbf72-c276-4573-a7cf-99c7da3dd0f9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "513f93b8-df40-4652-89c4-1d09b85a9a52", "created_at": "2025-05-29T16:56:12.162850+00:00", "updated_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/513f93b8-df40-4652-89c4-1d09b85a9a52", "rel": "self"}, {"href": "http://foo/nodes/513f93b8-df40-4652-89c4-1d09b85a9a52", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/513f93b8-df40-4652-89c4-1d09b85a9a52/ports", "rel": "self"}, {"href": "http://foo/nodes/513f93b8-df40-4652-89c4-1d09b85a9a52/ports", "rel": "bookmark"}]}
GET /v1/nodes/513f93b8-df40-4652-89c4-1d09b85a9a52 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-33365fa5-a4c5-4094-bc86-d2fb448c8b7f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "513f93b8-df40-4652-89c4-1d09b85a9a52", "created_at": "2025-05-29T16:56:12.162850+00:00", "updated_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/513f93b8-df40-4652-89c4-1d09b85a9a52", "rel": "self"}, {"href": "http://foo/nodes/513f93b8-df40-4652-89c4-1d09b85a9a52", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/513f93b8-df40-4652-89c4-1d09b85a9a52/ports", "rel": "self"}, {"href": "http://foo/nodes/513f93b8-df40-4652-89c4-1d09b85a9a52/ports", "rel": "bookmark"}]}
GET /nodes/513f93b8-df40-4652-89c4-1d09b85a9a52 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-da0c54c1-bfde-47ad-98fc-4f5d9a2ae83c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "513f93b8-df40-4652-89c4-1d09b85a9a52", "created_at": "2025-05-29T16:56:12.162850+00:00", "updated_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/513f93b8-df40-4652-89c4-1d09b85a9a52", "rel": "self"}, {"href": "http://foo/nodes/513f93b8-df40-4652-89c4-1d09b85a9a52", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/513f93b8-df40-4652-89c4-1d09b85a9a52/ports", "rel": "self"}, {"href": "http://foo/nodes/513f93b8-df40-4652-89c4-1d09b85a9a52/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok [0.104507s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fc722124-18e9-47d0-9cc1-210aa191e8e1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "8218426b-98a0-45fb-9857-f708e71849e4", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/8218426b-98a0-45fb-9857-f708e71849e4", "rel": "self"}, {"href": "http://localhost/portgroups/8218426b-98a0-45fb-9857-f708e71849e4", "rel": "bookmark"}]}, {"uuid": "4d1bc86a-1bb2-4854-8ad4-fc4b50ed93d5", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/4d1bc86a-1bb2-4854-8ad4-fc4b50ed93d5", "rel": "self"}, {"href": "http://localhost/portgroups/4d1bc86a-1bb2-4854-8ad4-fc4b50ed93d5", "rel": "bookmark"}]}, {"uuid": "b7aa34a1-bc55-4aba-9e7b-440e27004c01", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/b7aa34a1-bc55-4aba-9e7b-440e27004c01", "rel": "self"}, {"href": "http://localhost/portgroups/b7aa34a1-bc55-4aba-9e7b-440e27004c01", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version [0.055909s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?detail=True WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok [0.036450s] ... 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-daf33586-690b-4479-a3cd-e34fa2a2f81c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:12.220043+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_runbook.TestPatch.test_add_multi [0.154937s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/5409d6d3-a465-474e-8e52-187f06a1949d 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-ee937526-a20d-45af-9241-66f46f129206
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "5409d6d3-a465-474e-8e52-187f06a1949d", "created_at": "2025-05-29T16:56:12.125544+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/5409d6d3-a465-474e-8e52-187f06a1949d", "rel": "self"}, {"href": "http://localhost/runbooks/5409d6d3-a465-474e-8e52-187f06a1949d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration1", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path [0.038675s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/detail WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-7e57b6d6-48da-4fef-8529-5edda86729b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for connector_uuid: detail\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes [0.063408s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?maintenance=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-72bb437b-2abe-4334-acaa-88ea95af146c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "0f50a2db-e987-488e-a412-59ca07187cef", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0f50a2db-e987-488e-a412-59ca07187cef", "rel": "self"}, {"href": "http://localhost/nodes/0f50a2db-e987-488e-a412-59ca07187cef", "rel": "bookmark"}]}, {"uuid": "16b03322-2312-46fa-8668-8bdbbcff8e26", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/16b03322-2312-46fa-8668-8bdbbcff8e26", "rel": "self"}, {"href": "http://localhost/nodes/16b03322-2312-46fa-8668-8bdbbcff8e26", "rel": "bookmark"}]}]}
GET /v1/nodes?maintenance=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-64fe78ac-e3f5-42e2-9364-2e2c1c21a43f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "a829dfe0-adf9-41da-81b6-d53f38b02c0c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a829dfe0-adf9-41da-81b6-d53f38b02c0c", "rel": "self"}, {"href": "http://localhost/nodes/a829dfe0-adf9-41da-81b6-d53f38b02c0c", "rel": "bookmark"}]}, {"uuid": "816bd4f6-ec92-4ffe-8f5c-7bd8414be147", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/816bd4f6-ec92-4ffe-8f5c-7bd8414be147", "rel": "self"}, {"href": "http://localhost/nodes/816bd4f6-ec92-4ffe-8f5c-7bd8414be147", "rel": "bookmark"}]}, {"uuid": "f4155186-0c61-4af9-869c-3eb198723d9d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/f4155186-0c61-4af9-869c-3eb198723d9d", "rel": "self"}, {"href": "http://localhost/nodes/f4155186-0c61-4af9-869c-3eb198723d9d", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid [0.069465s] ... 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-2db328f0-430d-4887-a9d7-5bc8e9ccf6b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_root_non_existent [0.067931s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/9b58f1a1-73b3-4aeb-9129-ca8cb30b9d18 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5420eabd-88ae-4dc4-a75e-2a574c51c9ee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty [0.103271s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b01d12c5-237e-45f4-8659-726d7ed4cb94
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": []}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields [0.057674s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6707af7d-7a00-4945-98a9-4c730764564a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "dc6e7285-f65a-40e2-8a7b-02381df6c7ac", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/dc6e7285-f65a-40e2-8a7b-02381df6c7ac", "rel": "self"}, {"href": "http://localhost/portgroups/dc6e7285-f65a-40e2-8a7b-02381df6c7ac", "rel": "bookmark"}]}, {"uuid": "7969bb92-3e54-487b-81b9-8b7a05af4eb0", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/7969bb92-3e54-487b-81b9-8b7a05af4eb0", "rel": "self"}, {"href": "http://localhost/portgroups/7969bb92-3e54-487b-81b9-8b7a05af4eb0", "rel": "bookmark"}]}, {"uuid": "d6ad619b-b171-44f8-a1c0-f851983db65e", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/d6ad619b-b171-44f8-a1c0-f851983db65e", "rel": "self"}, {"href": "http://localhost/portgroups/d6ad619b-b171-44f8-a1c0-f851983db65e", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_too_high_index_step_fail [0.051104s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/cdd7ffed-27a5-465c-9e98-ca1dbe941797 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-4b0db3e2-a124-4af5-bbe1-fde8afcb0ece
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'order': 1}}'. Reason: can't insert outside of list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok [0.061078s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bf4699ac-9e16-4401-84da-74a8111f4610
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "220e7c4b-fd2e-43d5-82fb-dcd553940123", "connector_id": "test-value-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/220e7c4b-fd2e-43d5-82fb-dcd553940123", "rel": "self"}, {"href": "http://localhost/volume/connectors/220e7c4b-fd2e-43d5-82fb-dcd553940123", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "82cd8cdb-9b10-4f29-b0bb-f77f440f94d1", "connector_id": "test-value-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/82cd8cdb-9b10-4f29-b0bb-f77f440f94d1", "rel": "self"}, {"href": "http://localhost/volume/connectors/82cd8cdb-9b10-4f29-b0bb-f77f440f94d1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e11ccf53-4511-424d-8ea6-4ea345e6b1c5", "connector_id": "test-value-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e11ccf53-4511-424d-8ea6-4ea345e6b1c5", "rel": "self"}, {"href": "http://localhost/volume/connectors/e11ccf53-4511-424d-8ea6-4ea345e6b1c5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_foo [0.045176s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/81b528bc-0cce-483d-b052-1872cbf4b8c6 WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-7dd655a9-3b5a-4bf0-8e5e-047bcfcacde8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid [0.070328s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?fields=address&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a1c99127-2b1c-4e92-ae13-10ee019bea3a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/79aef25a-d76b-40e0-acad-450283595c45", "rel": "self"}, {"href": "http://localhost/portgroups/79aef25a-d76b-40e0-acad-450283595c45", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/127c6517-2382-45e8-9e93-f3244bbcc165", "rel": "self"}, {"href": "http://localhost/portgroups/127c6517-2382-45e8-9e93-f3244bbcc165", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=127c6517-2382-45e8-9e93-f3244bbcc165"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated [0.203384s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=true&maintenance=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-962fbfae-d125-4b1c-9f44-2b94159986e9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "2429813c-5acc-4fc4-8ed4-10a1fbffb038", "instance_uuid": "9f440b48-4742-4116-b0a4-22c630b732ff", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/2429813c-5acc-4fc4-8ed4-10a1fbffb038", "rel": "self"}, {"href": "http://localhost/nodes/2429813c-5acc-4fc4-8ed4-10a1fbffb038", "rel": "bookmark"}]}, {"uuid": "8948766c-7bd8-4722-89d9-aaf2d191d5e0", "instance_uuid": "0065a7e6-55ae-4701-9680-c22ec978f7d0", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/8948766c-7bd8-4722-89d9-aaf2d191d5e0", "rel": "self"}, {"href": "http://localhost/nodes/8948766c-7bd8-4722-89d9-aaf2d191d5e0", "rel": "bookmark"}]}, {"uuid": "eb6d7241-d64f-4769-af5d-8a4b25bd96be", "instance_uuid": "06924f0c-a83c-49ec-a358-bc1be8b84c69", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/eb6d7241-d64f-4769-af5d-8a4b25bd96be", "rel": "self"}, {"href": "http://localhost/nodes/eb6d7241-d64f-4769-af5d-8a4b25bd96be", "rel": "bookmark"}]}, {"uuid": "6ac11eab-62f4-45f0-a6cd-4423d73d67f8", "instance_uuid": "cc041168-7cc3-49fe-916c-612bb8b15c7d", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/6ac11eab-62f4-45f0-a6cd-4423d73d67f8", "rel": "self"}, {"href": "http://localhost/nodes/6ac11eab-62f4-45f0-a6cd-4423d73d67f8", "rel": "bookmark"}]}]}
GET /v1/nodes?associated=true&maintenance=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b679d37f-330a-402f-b684-8f7d31b51227
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": "88f4922e-b94d-4657-ac11-c3cbc6f08488", "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-c64e8cd9-fe69-49e7-855a-0eebfcbd6648
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": "88f4922e-b94d-4657-ac11-c3cbc6f08488", "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"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields [0.072970s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2560e2c5-071c-419a-bbb1-0586270d44e4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "ce422f6d-361e-4a75-a32d-a15d8491f75e", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/ce422f6d-361e-4a75-a32d-a15d8491f75e", "rel": "self"}, {"href": "http://localhost/volume/connectors/ce422f6d-361e-4a75-a32d-a15d8491f75e", "rel": "bookmark"}]}, {"uuid": "2903d5e6-08b5-44c9-9bca-6fac6901a1ae", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/2903d5e6-08b5-44c9-9bca-6fac6901a1ae", "rel": "self"}, {"href": "http://localhost/volume/connectors/2903d5e6-08b5-44c9-9bca-6fac6901a1ae", "rel": "bookmark"}]}, {"uuid": "d300c288-0989-4837-9270-d42493b25112", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/d300c288-0989-4837-9270-d42493b25112", "rel": "self"}, {"href": "http://localhost/volume/connectors/d300c288-0989-4837-9270-d42493b25112", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version [0.057884s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/?fields=address,properties WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-a31a0016-084b-47c0-9860-6eb10041e311
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_multi [0.090055s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/59c76a04-5b4e-4080-aa81-0b74bb1ae4fd WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4d08da8a-0575-4890-9da5-f6f2c7aed67e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "59c76a04-5b4e-4080-aa81-0b74bb1ae4fd", "created_at": "2025-05-29T16:56:12.462707+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/59c76a04-5b4e-4080-aa81-0b74bb1ae4fd", "rel": "self"}, {"href": "http://localhost/runbooks/59c76a04-5b4e-4080-aa81-0b74bb1ae4fd", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 2}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error [0.083356s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=true&maintenance=blah WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5e50b714-6a84-4f92-91eb-d4c8e664b825
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid maintenance: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields [0.080617s] ... 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-cd75a76c-9eb2-4d74-aa4c-f8f9db97e636
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid [0.106460s] ... 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-de4b9140-966b-45a4-9960-570595888055
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"connector_id": "test-connector_id-0", "links": [{"href": "http://localhost/v1/volume/connectors/570fddbc-9bc4-4019-a441-29c0b98fde53", "rel": "self"}, {"href": "http://localhost/volume/connectors/570fddbc-9bc4-4019-a441-29c0b98fde53", "rel": "bookmark"}]}, {"connector_id": "test-connector_id-1", "links": [{"href": "http://localhost/v1/volume/connectors/d649f982-a7c6-43b2-9087-df780738be7d", "rel": "self"}, {"href": "http://localhost/volume/connectors/d649f982-a7c6-43b2-9087-df780738be7d", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=d649f982-a7c6-43b2-9087-df780738be7d"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_name [0.096081s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/26a706e7-89d1-42e5-8e05-02d4b271568b WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-826d86a9-025f-43cc-8e07-aadfe8d9ed45
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many [0.088885s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9c03debe-92c5-4807-9f2f-c19052bd353c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "3b95de79-afff-47db-82b4-de196adb778f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/3b95de79-afff-47db-82b4-de196adb778f", "rel": "self"}, {"href": "http://localhost/nodes/3b95de79-afff-47db-82b4-de196adb778f", "rel": "bookmark"}]}, {"uuid": "ca4de03c-b9ff-48f3-b351-948da3468b7c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ca4de03c-b9ff-48f3-b351-948da3468b7c", "rel": "self"}, {"href": "http://localhost/nodes/ca4de03c-b9ff-48f3-b351-948da3468b7c", "rel": "bookmark"}]}, {"uuid": "a21e73d0-6cc2-4e88-88b8-317159295df5", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a21e73d0-6cc2-4e88-88b8-317159295df5", "rel": "self"}, {"href": "http://localhost/nodes/a21e73d0-6cc2-4e88-88b8-317159295df5", "rel": "bookmark"}]}, {"uuid": "32451cef-5370-4e66-bb96-ac565d74cd55", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/32451cef-5370-4e66-bb96-ac565d74cd55", "rel": "self"}, {"href": "http://localhost/nodes/32451cef-5370-4e66-bb96-ac565d74cd55", "rel": "bookmark"}]}, {"uuid": "aa83d285-ba97-4d82-9adf-27dc9dee5bdc", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/aa83d285-ba97-4d82-9adf-27dc9dee5bdc", "rel": "self"}, {"href": "http://localhost/nodes/aa83d285-ba97-4d82-9adf-27dc9dee5bdc", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version [0.045677s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_property_fail [0.053175s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/ef5d64e2-419a-4f34-83b4-99e47ebebc07 WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-fe3d66ec-ea85-4a52-9528-ca8110c00c86
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one [0.082643s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2a384eb2-0f9d-439f-86ff-1995684b781b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:12.632784+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_many_forbidden [0.041520s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e7a66fa2-bf93-4902-96a8-0fe927ae4392
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_step_fail [0.044324s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/ffd50578-3f23-4bb3-998d-bfa06810970e WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-32789182-7793-4606-aa43-3b096836dfbc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove non-existent object '1'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields [0.077907s] ... 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-e77b9514-aa7f-481a-9545-83004400195e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"address": "52:54:00:cf:2d:31", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names [0.102422s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e8ed5c4d-691a-4940-8666-50b5d2cc4f6f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"nodes": [{"uuid": "f76f1af0-a4eb-4dec-bf34-71b200689d5f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-0", "links": [{"href": "http://localhost/v1/nodes/f76f1af0-a4eb-4dec-bf34-71b200689d5f", "rel": "self"}, {"href": "http://localhost/nodes/f76f1af0-a4eb-4dec-bf34-71b200689d5f", "rel": "bookmark"}]}, {"uuid": "15a72b98-090c-4dbb-a4bf-6a80dc7387dc", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-1", "links": [{"href": "http://localhost/v1/nodes/15a72b98-090c-4dbb-a4bf-6a80dc7387dc", "rel": "self"}, {"href": "http://localhost/nodes/15a72b98-090c-4dbb-a4bf-6a80dc7387dc", "rel": "bookmark"}]}, {"uuid": "2bcf8ae3-44b5-4208-9daf-ed246e6ddd09", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-2", "links": [{"href": "http://localhost/v1/nodes/2bcf8ae3-44b5-4208-9daf-ed246e6ddd09", "rel": "self"}, {"href": "http://localhost/nodes/2bcf8ae3-44b5-4208-9daf-ed246e6ddd09", "rel": "bookmark"}]}, {"uuid": "70bcc9bc-a1fd-4ad6-b0c3-ab0e2e8c548e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-3", "links": [{"href": "http://localhost/v1/nodes/70bcc9bc-a1fd-4ad6-b0c3-ab0e2e8c548e", "rel": "self"}, {"href": "http://localhost/nodes/70bcc9bc-a1fd-4ad6-b0c3-ab0e2e8c548e", "rel": "bookmark"}]}, {"uuid": "b5cac187-4745-4925-9dd1-8464c64885ca", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-4", "links": [{"href": "http://localhost/v1/nodes/b5cac187-4745-4925-9dd1-8464c64885ca", "rel": "self"}, {"href": "http://localhost/nodes/b5cac187-4745-4925-9dd1-8464c64885ca", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_step_property_fail [0.086345s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/0a8d10cb-7ec7-4186-ae1e-4dabe4749dae WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-591d0f14-682e-4cb7-8fce-70b8fd054978
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version [0.046990s] ... 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\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version [0.045576s] ... 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-b1f2bd89-e5c9-4f07-afc7-33097443676d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_only_step_fail [0.068912s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/617996aa-23df-4391-bd0d-e8da159847ed WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-7435e4d1-d34b-40cf-9804-1382a48b4402
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_double_json_in_name [0.049460s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aca6868b-e00e-4554-803a-2fb818279315
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:12.870322+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_runbook.TestPatch.test_remove_steps [0.068939s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/b8893dac-b41a-461e-add0-ebe09d09ceb6 WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-bbaef7bc-bec3-411a-84e9-0a37c9461e94
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields [0.305474s] ... 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-c768b314-207c-4d25-9651-b0b14ea83027
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json [0.060924s] ... 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-31048f66-aeda-4f20-b290-caeef031a73c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:12.923079+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_runbook.TestPatch.test_remove_uuid [0.042676s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/70172af6-9cf0-48f6-aedf-46ad51bdff45 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-46a823c6-e444-4eac-92dc-6a8559fa92b9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch [0.230269s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?project=54321 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-bb2a2d6a-e2fe-4519-a047-e627d4a8734d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one [0.061869s] ... 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-3e0a626f-dd54-4399-a94d-7d2cb1b3aaee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:12.998572+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name [0.082708s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ca1da66c-f344-4eb0-bce4-f86e846fd56b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:13.001532+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_runbook.TestPatch.test_replace_duplicate_step [0.079299s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/bc173274-c185-4489-885a-f849965beb5a 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-abed84e7-47cb-46f9-a91d-dd2f6474ca7f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields [0.080733s] ... 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-a4f26326-c7e1-49e4-9ddb-0a2d42aee57d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_not_found [0.063363s] ... 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-909e273a-d834-41d4-8eb4-574ad69d0f29
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4.json could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden [0.094084s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-86c3e2e0-7c69-4db1-b05f-25f2eeeb1925
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "def5b4ef-054e-49e4-b4ac-0c7bb561e75f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/def5b4ef-054e-49e4-b4ac-0c7bb561e75f", "rel": "self"}, {"href": "http://localhost/nodes/def5b4ef-054e-49e4-b4ac-0c7bb561e75f", "rel": "bookmark"}]}, {"uuid": "f0aeac41-a419-4094-8b09-4cc560e71e1c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f0aeac41-a419-4094-8b09-4cc560e71e1c", "rel": "self"}, {"href": "http://localhost/nodes/f0aeac41-a419-4094-8b09-4cc560e71e1c", "rel": "bookmark"}]}, {"uuid": "168b6668-5584-4b59-b8d6-dcd4cc597148", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/168b6668-5584-4b59-b8d6-dcd4cc597148", "rel": "self"}, {"href": "http://localhost/nodes/168b6668-5584-4b59-b8d6-dcd4cc597148", "rel": "bookmark"}]}, {"uuid": "da90b79d-1ce9-4534-9033-1fc2cfadf9bb", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/da90b79d-1ce9-4534-9033-1fc2cfadf9bb", "rel": "self"}, {"href": "http://localhost/nodes/da90b79d-1ce9-4534-9033-1fc2cfadf9bb", "rel": "bookmark"}]}, {"uuid": "abbea29f-66cd-4e36-be34-84b5c7ddead0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/abbea29f-66cd-4e36-be34-84b5c7ddead0", "rel": "self"}, {"href": "http://localhost/nodes/abbea29f-66cd-4e36-be34-84b5c7ddead0", "rel": "bookmark"}]}, {"uuid": "486fdea9-60a8-4b2e-8cde-6f6c78ee3973", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/486fdea9-60a8-4b2e-8cde-6f6c78ee3973", "rel": "self"}, {"href": "http://localhost/nodes/486fdea9-60a8-4b2e-8cde-6f6c78ee3973", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_empty_step_list_fail [0.058288s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/9277356a-c6f3-4d60-9b45-24c74a57d78e WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b621f4f6-1e51-42fa-b2d6-bc8993cede1c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version [0.041444s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden_no_project [0.046901s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-aa38532c-6bbf-4efe-a8b2-ec023f30859d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links [0.058652s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/effc908e-82a3-44fd-a61d-6318f66eab99 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-72f0b56e-0fd0-41a3-85e8-b55fbf476da6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "effc908e-82a3-44fd-a61d-6318f66eab99", "created_at": "2025-05-29T16:56:13.167171+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/effc908e-82a3-44fd-a61d-6318f66eab99", "rel": "self"}, {"href": "http://localhost/volume/connectors/effc908e-82a3-44fd-a61d-6318f66eab99", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/connectors/effc908e-82a3-44fd-a61d-6318f66eab99 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2f0b63c4-37d1-40e0-b55d-dd1384af60bb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "effc908e-82a3-44fd-a61d-6318f66eab99", "created_at": "2025-05-29T16:56:13.167171+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/effc908e-82a3-44fd-a61d-6318f66eab99", "rel": "self"}, {"href": "http://localhost/volume/connectors/effc908e-82a3-44fd-a61d-6318f66eab99", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /volume/connectors/effc908e-82a3-44fd-a61d-6318f66eab99 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6fc2ef88-3a18-49c6-b140-3a4b8173ff2a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "effc908e-82a3-44fd-a61d-6318f66eab99", "created_at": "2025-05-29T16:56:13.167171+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/effc908e-82a3-44fd-a61d-6318f66eab99", "rel": "self"}, {"href": "http://localhost/volume/connectors/effc908e-82a3-44fd-a61d-6318f66eab99", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state [0.060931s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8631f00d-3a7e-4214-9526-fd2e677df1b7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.185044+00:00", "updated_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-f3477d8a-da70-47d1-85eb-e96959616d61
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.2
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.185044+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_name_none [0.089567s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/c201b7a7-fc02-403f-87e9-93496bf0636e WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-29782593-a634-46e3-968d-0b6e7d228eee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: None is not of type 'string'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association [0.059071s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?limit=3&associated=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-595d6443-d1cc-4542-8413-f91c08484de9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "c0e30a7c-c776-4381-9458-eb0e7d0251d5", "instance_uuid": "65406f57-d98f-47a0-a339-17968ded6383", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/c0e30a7c-c776-4381-9458-eb0e7d0251d5", "rel": "self"}, {"href": "http://localhost/nodes/c0e30a7c-c776-4381-9458-eb0e7d0251d5", "rel": "bookmark"}]}, {"uuid": "97a6cc41-ddf7-4087-bdb4-78564ec017bd", "instance_uuid": "c97c2bd8-1d5f-49c4-bd08-f1f5bae4a44c", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/97a6cc41-ddf7-4087-bdb4-78564ec017bd", "rel": "self"}, {"href": "http://localhost/nodes/97a6cc41-ddf7-4087-bdb4-78564ec017bd", "rel": "bookmark"}]}, {"uuid": "253489bd-292a-44ff-bbba-0fb3540689c7", "instance_uuid": "384757d2-28a0-4f13-8649-66c95858a22d", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/253489bd-292a-44ff-bbba-0fb3540689c7", "rel": "self"}, {"href": "http://localhost/nodes/253489bd-292a-44ff-bbba-0fb3540689c7", "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=253489bd-292a-44ff-bbba-0fb3540689c7"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many [0.084282s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f71ef02f-9692-4994-82c1-0067efaf7877
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "27fe50b0-dfa9-4cd7-92b9-818a3bf01ed1", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/27fe50b0-dfa9-4cd7-92b9-818a3bf01ed1", "rel": "self"}, {"href": "http://localhost/volume/connectors/27fe50b0-dfa9-4cd7-92b9-818a3bf01ed1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "ab12f9fd-c710-45e6-b755-de0929fea971", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ab12f9fd-c710-45e6-b755-de0929fea971", "rel": "self"}, {"href": "http://localhost/volume/connectors/ab12f9fd-c710-45e6-b755-de0929fea971", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "0f6c2418-b3b2-4ccb-8093-c7846c4c827f", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0f6c2418-b3b2-4ccb-8093-c7846c4c827f", "rel": "self"}, {"href": "http://localhost/volume/connectors/0f6c2418-b3b2-4ccb-8093-c7846c4c827f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "b8474316-7b72-430c-ac77-f0aa43c03156", "connector_id": "test-connector_id-3", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/b8474316-7b72-430c-ac77-f0aa43c03156", "rel": "self"}, {"href": "http://localhost/volume/connectors/b8474316-7b72-430c-ac77-f0aa43c03156", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "98f8012f-2324-4c52-a289-8d82d9a32803", "connector_id": "test-connector_id-4", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/98f8012f-2324-4c52-a289-8d82d9a32803", "rel": "self"}, {"href": "http://localhost/volume/connectors/98f8012f-2324-4c52-a289-8d82d9a32803", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail [0.062186s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?limit=3&associated=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a4f2cd4e-99c1-47b4-8cdc-da48c6b19bd5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "555167e4-12b0-4bb3-9c58-a364ed0bf6de", "created_at": "2025-05-29T16:56:13.305666+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "d111ddfd-6c23-46b4-9af7-d4763259b871", "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/555167e4-12b0-4bb3-9c58-a364ed0bf6de", "rel": "self"}, {"href": "http://localhost/nodes/555167e4-12b0-4bb3-9c58-a364ed0bf6de", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/555167e4-12b0-4bb3-9c58-a364ed0bf6de/ports", "rel": "self"}, {"href": "http://localhost/nodes/555167e4-12b0-4bb3-9c58-a364ed0bf6de/ports", "rel": "bookmark"}]}, {"uuid": "ea7d5163-b217-4dac-b828-d6981dbeb3b7", "created_at": "2025-05-29T16:56:13.307479+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "5fad4c32-a153-4ac1-a5cd-106792ccc5d7", "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/ea7d5163-b217-4dac-b828-d6981dbeb3b7", "rel": "self"}, {"href": "http://localhost/nodes/ea7d5163-b217-4dac-b828-d6981dbeb3b7", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ea7d5163-b217-4dac-b828-d6981dbeb3b7/ports", "rel": "self"}, {"href": "http://localhost/nodes/ea7d5163-b217-4dac-b828-d6981dbeb3b7/ports", "rel": "bookmark"}]}, {"uuid": "1fb53329-9c42-4685-b6ec-9d1b30033931", "created_at": "2025-05-29T16:56:13.309180+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "84535c50-d597-4ad9-bd22-653ea7d54eb4", "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/1fb53329-9c42-4685-b6ec-9d1b30033931", "rel": "self"}, {"href": "http://localhost/nodes/1fb53329-9c42-4685-b6ec-9d1b30033931", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1fb53329-9c42-4685-b6ec-9d1b30033931/ports", "rel": "self"}, {"href": "http://localhost/nodes/1fb53329-9c42-4685-b6ec-9d1b30033931/ports", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=1fb53329-9c42-4685-b6ec-9d1b30033931"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one [0.051125s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9d078b39-b820-45fa-b4f4-26dcd5831f80
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_name_too_long [0.124539s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/b7f9088a-2342-469f-a030-c66838c90fb8 WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1c8e46b0-8285-49f7-94b6-8762700cf270
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field [0.067786s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-028e9e78-59db-4e5d-a09e-6b705b5fcc6f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.373572+00:00", "updated_at": null, "automated_clean": false, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix [0.311072s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9151f049-ecda-479b-8c2a-9a8713492369
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:13.384574+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_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version [0.087334s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_step_interface_fail [0.078724s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/27bf84bf-5672-45fb-babd-41d32cd4db6b 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-bed977e6-594e-4be1-9320-2752a0a729d9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version [0.076552s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bf969498-1945-45af-ab0e-7c0314184c6a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.445542+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-906cbcac-1700-4029-b510-162e8e2467b8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.445542+00:00", "updated_at": null, "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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links [0.071406s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aae34fef-eaef-4b80-88ca-8503a10a8495
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6", "created_at": "2025-05-29T16:56:13.446081+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/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6", "rel": "self"}, {"href": "http://localhost/portgroups/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6/ports", "rel": "self"}, {"href": "http://localhost/portgroups/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6/ports", "rel": "bookmark"}]}
GET /v1/portgroups/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0bc879ba-88fe-49b9-9d45-44e32b64da6b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6", "created_at": "2025-05-29T16:56:13.446081+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/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6", "rel": "self"}, {"href": "http://localhost/portgroups/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6/ports", "rel": "self"}, {"href": "http://localhost/portgroups/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6/ports", "rel": "bookmark"}]}
GET /portgroups/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aa9695aa-7de5-438b-aa47-93f670b049dd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6", "created_at": "2025-05-29T16:56:13.446081+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/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6", "rel": "self"}, {"href": "http://localhost/portgroups/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6/ports", "rel": "self"}, {"href": "http://localhost/portgroups/a5ed936d-cd9f-466e-9d41-5fe0e0ca85d6/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_multi [0.070802s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/66f769b7-b5c5-42f2-b6fd-79a7e90e685a 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-97818f3b-dac9-44a8-a7c4-125cab63847d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "66f769b7-b5c5-42f2-b6fd-79a7e90e685a", "created_at": "2025-05-29T16:56:13.467782+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/66f769b7-b5c5-42f2-b6fd-79a7e90e685a", "rel": "self"}, {"href": "http://localhost/runbooks/66f769b7-b5c5-42f2-b6fd-79a7e90e685a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 3}, {"interface": "raid", "step": "create_configuration1", "args": {}, "order": 3}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 3}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field [0.055323s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-32913c39-59fc-4a43-ab49-9ba9726b887b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.523059+00:00", "updated_at": null, "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"}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key [0.134866s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bc8b2b82-79ec-45a8-ab61-689dcd522b5a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "3373a5ca-50f3-440f-9ade-ea82e5630ac0", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/3373a5ca-50f3-440f-9ade-ea82e5630ac0", "rel": "self"}, {"href": "http://localhost/volume/connectors/3373a5ca-50f3-440f-9ade-ea82e5630ac0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "f440223a-1ca2-48c1-bb24-16418b9bde69", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/f440223a-1ca2-48c1-bb24-16418b9bde69", "rel": "self"}, {"href": "http://localhost/volume/connectors/f440223a-1ca2-48c1-bb24-16418b9bde69", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "fd0d7059-d0b1-4d5a-9bf7-d6d3a00b12b8", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/fd0d7059-d0b1-4d5a-9bf7-d6d3a00b12b8", "rel": "self"}, {"href": "http://localhost/volume/connectors/fd0d7059-d0b1-4d5a-9bf7-d6d3a00b12b8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field [0.039930s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3de4a80f-792b-4c85-b6cc-a514ee439f4e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.566598+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_name_already_exist [0.079264s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/80bf180f-38ee-4892-80cc-8d2bd7058681 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-4483911b-720f-4624-874b-b1dfd6f952b5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A runbook with UUID 80bf180f-38ee-4892-80cc-8d2bd7058681 already exists.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_non_existent_step_fail [0.039118s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/89fff40f-ffff-424a-9ecd-0b321197453f 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-87e51caf-8ec9-4583-81ce-20296a4b004a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'order': 1}}'. Reason: list assignment index out of range\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid [0.068007s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3b1595f2-8637-4768-ba92-785fe538825c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/volume/connectors?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-deac0cc3-9ed6-49d0-ad79-cc60cb3cfd09
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version [0.063575s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a7c97d6c-5a8c-4200-82e1-15c7ded6ee38
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.617431+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-2be339bd-a7fd-4246-a6ef-f7c93160ae0d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.617431+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nod
    es/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many [0.158106s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-02f9cf5f-f4bd-4a05-a389-af675e33f85c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "637d3e54-b2e2-4699-b143-252995aa2d10", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/637d3e54-b2e2-4699-b143-252995aa2d10", "rel": "self"}, {"href": "http://localhost/portgroups/637d3e54-b2e2-4699-b143-252995aa2d10", "rel": "bookmark"}]}, {"uuid": "0d5477f0-6f20-493a-9bfc-b79a49e7aa27", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/0d5477f0-6f20-493a-9bfc-b79a49e7aa27", "rel": "self"}, {"href": "http://localhost/portgroups/0d5477f0-6f20-493a-9bfc-b79a49e7aa27", "rel": "bookmark"}]}, {"uuid": "82dc3214-666b-49ae-9497-61f0cd21608e", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/82dc3214-666b-49ae-9497-61f0cd21608e", "rel": "self"}, {"href": "http://localhost/portgroups/82dc3214-666b-49ae-9497-61f0cd21608e", "rel": "bookmark"}]}, {"uuid": "59ba51ab-44ad-4442-a4d7-c025c1247ab9", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/59ba51ab-44ad-4442-a4d7-c025c1247ab9", "rel": "self"}, {"href": "http://localhost/portgroups/59ba51ab-44ad-4442-a4d7-c025c1247ab9", "rel": "bookmark"}]}, {"uuid": "127b1dc7-ea91-4a2c-9faf-86497e39dafd", "address": "52:54:00:cf:2d:34", "name": "portgroup4", "links": [{"href": "http://localhost/v1/portgroups/127b1dc7-ea91-4a2c-9faf-86497e39dafd", "rel": "self"}, {"href": "http://localhost/portgroups/127b1dc7-ea91-4a2c-9faf-86497e39dafd", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_step_invalid_interface [0.042776s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/5e1e5557-6205-47e7-b1ab-a139fbaaa41b WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-96004724-e030-4af0-b8c6-30e329e060d7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode [0.059126s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/f4df2352-9e9a-48c0-b43e-336883fe7625 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ee3fcb5f-5148-40f5-91ae-c40f0e765a79
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "f4df2352-9e9a-48c0-b43e-336883fe7625", "created_at": "2025-05-29T16:56:13.678652+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/f4df2352-9e9a-48c0-b43e-336883fe7625", "rel": "self"}, {"href": "http://localhost/nodes/f4df2352-9e9a-48c0-b43e-336883fe7625", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f4df2352-9e9a-48c0-b43e-336883fe7625/ports", "rel": "self"}, {"href": "http://localhost/nodes/f4df2352-9e9a-48c0-b43e-336883fe7625/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f4df2352-9e9a-48c0-b43e-336883fe7625/states", "rel": "self"}, {"href": "http://localhost/nodes/f4df2352-9e9a-48c0-b43e-336883fe7625/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f4df2352-9e9a-48c0-b43e-336883fe7625/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f4df2352-9e9a-48c0-b43e-336883fe7625/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f4df2352-9e9a-48c0-b43e-336883fe7625/volume", "rel": "self"}, {"href": "http://localhost/nodes/f4df2352-9e9a-48c0-b43e-336883fe7625/volume", "rel": "bookmark"}]}
GET /v1/nodes/836c0c78-9f4e-43ab-bab5-d6c6d08560f8 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-00cfc76f-21ad-41c7-8502-6bfe69251712
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "836c0c78-9f4e-43ab-bab5-d6c6d08560f8", "created_at": "2025-05-29T16:56:13.692246+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/836c0c78-9f4e-43ab-bab5-d6c6d08560f8", "rel": "self"}, {"href": "http://localhost/nodes/836c0c78-9f4e-43ab-bab5-d6c6d08560f8", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/836c0c78-9f4e-43ab-bab5-d6c6d08560f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/836c0c78-9f4e-43ab-bab5-d6c6d08560f8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/836c0c78-9f4e-43ab-bab5-d6c6d08560f8/states", "rel": "self"}, {"href": "http://localhost/nodes/836c0c78-9f4e-43ab-bab5-d6c6d08560f8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/836c0c78-9f4e-43ab-bab5-d6c6d08560f8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/836c0c78-9f4e-43ab-bab5-d6c6d08560f8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/836c0c78-9f4e-43ab-bab5-d6c6d08560f8/volume", "rel": "self"}, {"href": "http://localhost/nodes/836c0c78-9f4e-43ab-bab5-d6c6d08560f8/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid [0.071978s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content
Openstack-Request-Id: req-c5a8e27d-6998-4c0d-81e7-75d0c172a3bc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one [0.076644s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b3404869-9191-48d1-a236-b26c9c9e5c40
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version [0.035527s] ... 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\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_hidden_in_lower_version [0.061659s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ce19c10b-f1ad-44e6-87c3-faca0b624495
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.736367+00:00", "updated_at": null, "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-c52826b5-2345-4115-8132-ed2ad14a9ae3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.736367+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, 
    "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_runbook_set_owner_public_system_scope [0.128527s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': 'ab505efd-c2e8-4be2-9503-995c6c67e55f', '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/ab505efd-c2e8-4be2-9503-995c6c67e55f
Openstack-Request-Id: req-6233667f-2e69-4421-bfb9-5a5c0a293980
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "ab505efd-c2e8-4be2-9503-995c6c67e55f", "created_at": "2025-05-29T16:56:13.747512+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ab505efd-c2e8-4be2-9503-995c6c67e55f", "rel": "self"}, {"href": "http://localhost/runbooks/ab505efd-c2e8-4be2-9503-995c6c67e55f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/ab505efd-c2e8-4be2-9503-995c6c67e55f 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-49887082-ac1e-486f-bf38-eaebbd7ecebe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "ab505efd-c2e8-4be2-9503-995c6c67e55f", "created_at": "2025-05-29T16:56:13.747512+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ab505efd-c2e8-4be2-9503-995c6c67e55f", "rel": "self"}, {"href": "http://localhost/runbooks/ab505efd-c2e8-4be2-9503-995c6c67e55f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address [0.076789s] ... 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-e6f06750-180c-4dcc-9032-195f4f7fccc4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "380385db-8679-42d5-9f1d-56f292950e4e", "address": "aa:bb:cc:dd:ee:f1", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/380385db-8679-42d5-9f1d-56f292950e4e", "rel": "self"}, {"href": "http://localhost/portgroups/380385db-8679-42d5-9f1d-56f292950e4e", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_null_field [0.051574s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a4173804-2054-48c6-9ba0-57c72cb89879
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.799021+00:00", "updated_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_volume_target.TestDelete.test_delete_volume_target_invalid_power_state [0.118394s] ... 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-0dac5ec1-4b34-423b-b104-27004b3c73af
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target deletion\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid [0.057648s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?instance_uuid=85eff92b-64a8-46fe-bbdd-4b53608316d6 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fd92615d-04e8-4d6d-9b6f-0f4faf632cf6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"nodes": [{"uuid": "6b5ea4fe-777a-4344-8470-b2758374cc58", "instance_uuid": "85eff92b-64a8-46fe-bbdd-4b53608316d6", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/6b5ea4fe-777a-4344-8470-b2758374cc58", "rel": "self"}, {"href": "http://localhost/nodes/6b5ea4fe-777a-4344-8470-b2758374cc58", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format [0.079012s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0dcc0c31-eb16-4a4e-853b-95cf72f95ecc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_runbook_set_owner_public_system_scope_fails [0.092906s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '8d5c30ba-bb25-4899-b162-ab28305bc603', '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/8d5c30ba-bb25-4899-b162-ab28305bc603
Openstack-Request-Id: req-7013195c-f29b-430a-9740-a6915a9d73e6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "8d5c30ba-bb25-4899-b162-ab28305bc603", "created_at": "2025-05-29T16:56:13.881104+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/8d5c30ba-bb25-4899-b162-ab28305bc603", "rel": "self"}, {"href": "http://localhost/runbooks/8d5c30ba-bb25-4899-b162-ab28305bc603", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/8d5c30ba-bb25-4899-b162-ab28305bc603 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-449db53d-1347-4a46-a254-5d50b931820a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/owner', 'value': 'projectX', 'op': 'replace'}, {'path': '/public', 'value': True, 'op': 'replace'}]'. Reason: There cannot be an owner for a public runbook\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid [0.035887s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?instance_uuid=fake WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1d7482a2-783e-4aae-99c9-aa5a305a0c60
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for instance_uuid: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address [0.051711s] ... 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-3d177db5-ac78-425a-93c4-1f54007df170
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": []}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid [0.037595s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?instance_uuid=f14e1593-1816-427b-b64c-fa42df469003 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3ee2a2e1-0950-4c82-ace9-07baa1769e40
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": []}
{3} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked [0.125405s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-ce812601-56ed-4cac-9e4a-e7bc7bd027fe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version [0.054664s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-0ea1204a-dfcb-4ae2-9537-1411743ba159
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version [0.065728s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3a823c12-5483-46d4-abaf-a642e5d69ab5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.976748+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-3014379f-6f49-464f-aafc-112dfcab1dec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:13.976748+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_new_owner_for_project_owned_runbook [0.124165s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '01976088-af17-4f48-831c-49635348a3c6', '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/01976088-af17-4f48-831c-49635348a3c6
Openstack-Request-Id: req-1d8b2fb0-9c08-43fe-8812-f58fbdc39f9f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "01976088-af17-4f48-831c-49635348a3c6", "created_at": "2025-05-29T16:56:13.964705+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/01976088-af17-4f48-831c-49635348a3c6", "rel": "self"}, {"href": "http://localhost/runbooks/01976088-af17-4f48-831c-49635348a3c6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/01976088-af17-4f48-831c-49635348a3c6 WITH [{'path': '/owner', 'value': 'projectY', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-799b5ccf-1241-4bb6-9f21-f0f26f6f57f0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "01976088-af17-4f48-831c-49635348a3c6", "created_at": "2025-05-29T16:56:13.964705+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectY", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/01976088-af17-4f48-831c-49635348a3c6", "rel": "self"}, {"href": "http://localhost/runbooks/01976088-af17-4f48-831c-49635348a3c6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg [0.064622s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version [0.097517s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a2c07d2d-6b68-4246-8ae0-5f2886704e97
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.082087+00:00", "updated_at": null, "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-bb525799-4c9f-477b-8899-46fdfe56ddd4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.082087+00:00", "updated_at": null, "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_runbook.TestPatch.test_set_owner_system_scope [0.082507s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '60586239-2e69-4ed7-960e-4c8f0f269108', '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/60586239-2e69-4ed7-960e-4c8f0f269108
Openstack-Request-Id: req-63025483-3e5c-4636-be13-70320e5cb7ca
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "60586239-2e69-4ed7-960e-4c8f0f269108", "created_at": "2025-05-29T16:56:14.079622+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/60586239-2e69-4ed7-960e-4c8f0f269108", "rel": "self"}, {"href": "http://localhost/runbooks/60586239-2e69-4ed7-960e-4c8f0f269108", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/60586239-2e69-4ed7-960e-4c8f0f269108 WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e628d186-df00-4ce4-87e7-6662f0dc9925
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "60586239-2e69-4ed7-960e-4c8f0f269108", "created_at": "2025-05-29T16:56:14.079622+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/60586239-2e69-4ed7-960e-4c8f0f269108", "rel": "self"}, {"href": "http://localhost/runbooks/60586239-2e69-4ed7-960e-4c8f0f269108", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_set_arg_types [0.067588s] ... ok
{3} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature [0.050460s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_owner_system_scope_fails_if_public [0.076722s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': 'e797fa7f-822d-49d2-bad6-e80ca0d1e7cc', '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/e797fa7f-822d-49d2-bad6-e80ca0d1e7cc
Openstack-Request-Id: req-eccd72bb-a7e3-4a3b-8008-8df3aa4c7f26
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e797fa7f-822d-49d2-bad6-e80ca0d1e7cc", "created_at": "2025-05-29T16:56:14.177715+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e797fa7f-822d-49d2-bad6-e80ca0d1e7cc", "rel": "self"}, {"href": "http://localhost/runbooks/e797fa7f-822d-49d2-bad6-e80ca0d1e7cc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/e797fa7f-822d-49d2-bad6-e80ca0d1e7cc WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9622f351-bfdb-499d-82fc-cfd55ef9b715
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/owner', 'value': 'projectX', 'op': 'replace'}]'. Reason: There cannot be an owner for a public runbook\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource [0.194912s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/bef654f4-36fc-46f0-bd02-6281014b0665/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1851eaec-9558-4daf-bf35-4edaf6b2d046
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "63c6a423-f461-4faf-b9a3-ccd380029108", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/63c6a423-f461-4faf-b9a3-ccd380029108", "rel": "self"}, {"href": "http://localhost/ports/63c6a423-f461-4faf-b9a3-ccd380029108", "rel": "bookmark"}]}, {"uuid": "e98735bf-19f3-449b-9f96-592514194233", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/e98735bf-19f3-449b-9f96-592514194233", "rel": "self"}, {"href": "http://localhost/ports/e98735bf-19f3-449b-9f96-592514194233", "rel": "bookmark"}]}]}
GET /v1/portgroups/bef654f4-36fc-46f0-bd02-6281014b0665/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-14e8d5b9-27ab-42ff-bbea-a0d8be91aa68
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "63c6a423-f461-4faf-b9a3-ccd380029108", "created_at": "2025-05-29T16:56:14.055218+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/63c6a423-f461-4faf-b9a3-ccd380029108", "rel": "self"}, {"href": "http://localhost/ports/63c6a423-f461-4faf-b9a3-ccd380029108", "rel": "bookmark"}], "portgroup_uuid": "bef654f4-36fc-46f0-bd02-6281014b0665"}, {"uuid": "e98735bf-19f3-449b-9f96-592514194233", "created_at": "2025-05-29T16:56:14.059854+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/e98735bf-19f3-449b-9f96-592514194233", "rel": "self"}, {"href": "http://localhost/ports/e98735bf-19f3-449b-9f96-592514194233", "rel": "bookmark"}], "portgroup_uuid": "bef654f4-36fc-46f0-bd02-6281014b0665"}]}
GET /v1/portgroups/bef654f4-36fc-46f0-bd02-6281014b0665/ports?limit=1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bec6ab50-2a58-4bdc-b36b-9a64e5997e2e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "63c6a423-f461-4faf-b9a3-ccd380029108", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/63c6a423-f461-4faf-b9a3-ccd380029108", "rel": "self"}, {"href": "http://localhost/ports/63c6a423-f461-4faf-b9a3-ccd380029108", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=63c6a423-f461-4faf-b9a3-ccd380029108"}
GET /v1/portgroups/bef654f4-36fc-46f0-bd02-6281014b0665/ports/31eb7f7c-51de-4b64-8b99-721139240e83 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
GET /v1/portgroups/bef654f4-36fc-46f0-bd02-6281014b0665/ports/1c30efa1-7225-4289-b542-68e155d79a40 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-89a602b1-e532-4df4-a95d-263e113a42ed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debug
    info\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version [0.104095s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f059a90b-ad44-4535-bb64-652e6ddf2de5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.43
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.187492+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-efdac835-b319-45ac-af97-dd3fefe854b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.44
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.187492+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"}]}
{3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success [0.064817s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-1a018811-893f-492d-803e-e88802abecbf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_project_owned_runbook_public [0.068710s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': 'a9cb6d06-85e6-4993-8de0-e871f18d36d4', '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/a9cb6d06-85e6-4993-8de0-e871f18d36d4
Openstack-Request-Id: req-561630f6-1907-4999-ae32-7df324a38738
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "a9cb6d06-85e6-4993-8de0-e871f18d36d4", "created_at": "2025-05-29T16:56:14.241004+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/a9cb6d06-85e6-4993-8de0-e871f18d36d4", "rel": "self"}, {"href": "http://localhost/runbooks/a9cb6d06-85e6-4993-8de0-e871f18d36d4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/a9cb6d06-85e6-4993-8de0-e871f18d36d4 WITH [{'path': '/public', 'value': True, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fc501576-0c2b-45fe-aa53-229583fa0c86
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "a9cb6d06-85e6-4993-8de0-e871f18d36d4", "created_at": "2025-05-29T16:56:14.241004+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/a9cb6d06-85e6-4993-8de0-e871f18d36d4", "rel": "self"}, {"href": "http://localhost/runbooks/a9cb6d06-85e6-4993-8de0-e871f18d36d4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed [0.068264s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/e73c4ae3-95c6-4f1f-9db6-b0ab399d8cbc/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_description_null_field [0.053807s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d88855eb-c425-4650-acba-808db20194c9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.260087+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault [0.034263s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-45488b2a-8c5c-40e1-a765-11c905857c11
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug [0.032075s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-4238ce8e-1885-45f8-b840-31c7644ac218
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_false_field [0.060290s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-edc0369a-b90c-41b3-bd13-0ec7d95faea4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.95
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.329080+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_public_system_scope [0.074609s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/cc507674-a458-44a1-9c3b-d2f21d8af0fc WITH [{'path': '/public', 'value': True, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-55e067ad-92a9-44df-a8ed-1137a179f4f9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "cc507674-a458-44a1-9c3b-d2f21d8af0fc", "created_at": "2025-05-29T16:56:14.309109+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/cc507674-a458-44a1-9c3b-d2f21d8af0fc", "rel": "self"}, {"href": "http://localhost/runbooks/cc507674-a458-44a1-9c3b-d2f21d8af0fc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks [0.030303s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-85616b37-ba15-4489-b9ee-01fb573aa87d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n  File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n   **args)\\n  File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n   result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed [0.104129s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault [0.040645s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-81bdb0f8-6923-4645-908e-927a4ac719a4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_hidden_in_lower_version [0.063328s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7745838c-dfa8-4b5e-b735-3880350f53ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.94
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.383187+00:00", "updated_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-11d5883b-2e19-4541-8156-d1080f0c36f1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.95
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.383187+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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_portgroup_not_found [0.056540s] ... 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-c934390b-a934-4577-ae18-7780bdcd3f28
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug [0.044751s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-8c8172ac-451f-4707-8dd4-03fd40e532ed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_unset_public_system_scope [0.104741s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE2', 'uuid': '3b80d489-6cb7-4ecd-b5f4-c8058ea41183', '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/3b80d489-6cb7-4ecd-b5f4-c8058ea41183
Openstack-Request-Id: req-7b3af1d3-e426-4032-8e0a-ca8191303b60
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "3b80d489-6cb7-4ecd-b5f4-c8058ea41183", "created_at": "2025-05-29T16:56:14.397258+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE2", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/3b80d489-6cb7-4ecd-b5f4-c8058ea41183", "rel": "self"}, {"href": "http://localhost/runbooks/3b80d489-6cb7-4ecd-b5f4-c8058ea41183", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/3b80d489-6cb7-4ecd-b5f4-c8058ea41183 WITH [{'path': '/public', 'value': False, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8fcee60b-e250-4105-b561-fcad45d5d684
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "3b80d489-6cb7-4ecd-b5f4-c8058ea41183", "created_at": "2025-05-29T16:56:14.397258+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/3b80d489-6cb7-4ecd-b5f4-c8058ea41183", "rel": "self"}, {"href": "http://localhost/runbooks/3b80d489-6cb7-4ecd-b5f4-c8058ea41183", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_null_field [0.057379s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dd5d006b-5b77-4f01-a4da-e1b0a4adc464
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.95
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.450186+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_true_field [0.060305s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7f8f46f7-8e6e-4d08-ab44-1ae235ed8a0e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.95
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.504080+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": true, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_id [0.075967s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/68892a4c-f70e-47f5-9802-c32bcba38704 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3c457890-c305-479b-a719-ebd7e6097493
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "68892a4c-f70e-47f5-9802-c32bcba38704", "created_at": "2025-05-29T16:56:14.498627+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/68892a4c-f70e-47f5-9802-c32bcba38704", "rel": "self"}, {"href": "http://localhost/runbooks/68892a4c-f70e-47f5-9802-c32bcba38704", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key [0.083851s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f7cd3353-770c-45da-84ad-cc5f3b624f73
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "55c59bc0-e580-4450-ba3e-4b7907cfc645", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/55c59bc0-e580-4450-ba3e-4b7907cfc645", "rel": "self"}, {"href": "http://localhost/portgroups/55c59bc0-e580-4450-ba3e-4b7907cfc645", "rel": "bookmark"}]}, {"uuid": "8f579b1b-69b9-40b6-919e-ff08cb06860e", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/8f579b1b-69b9-40b6-919e-ff08cb06860e", "rel": "self"}, {"href": "http://localhost/portgroups/8f579b1b-69b9-40b6-919e-ff08cb06860e", "rel": "bookmark"}]}, {"uuid": "b32b546a-9958-416c-ba0e-4f55ed83a858", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/b32b546a-9958-416c-ba0e-4f55ed83a858", "rel": "self"}, {"href": "http://localhost/portgroups/b32b546a-9958-416c-ba0e-4f55ed83a858", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks [0.096834s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-c74fc4e3-ebd3-4709-8960-2ff2fe3305ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n  File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n   **args)\\n  File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n   result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": \"Traceback (most recent call last):\\n\\n  File \\\"/builddir/build/BUILD/ironic-29.1.0.dev138/ironic/api/method.py\\\", line 42, in callfunction\\n    result = f(self, *args, **kwargs)\\n\\n  File \\\"/builddir/build/BUILD/ironic-29.1.0.dev138/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.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version [0.059340s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cbe2a56d-9c6c-4217-9b2b-a7228ac8dc5e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.41
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.555577+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-17884702-4faf-4fe9-b2b6-e2eb84a99d4a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.555577+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_id_invalid_api_version [0.058612s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/e9a3f206-040e-449f-83f1-9ab067f527a3 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\"}"}
{3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success [0.076992s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-989a7a47-2e38-474f-a781-5667595465a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed [0.129752s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-806aa9a8-5709-4d47-8597-5ff0adbbfbe9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "698f0fea-2198-47fa-b334-74e679e61eda", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/698f0fea-2198-47fa-b334-74e679e61eda", "rel": "self"}, {"href": "http://localhost/portgroups/698f0fea-2198-47fa-b334-74e679e61eda", "rel": "bookmark"}]}, {"uuid": "0c1a098f-c8ae-44e2-b26b-7fdcbbeea9c6", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/0c1a098f-c8ae-44e2-b26b-7fdcbbeea9c6", "rel": "self"}, {"href": "http://localhost/portgroups/0c1a098f-c8ae-44e2-b26b-7fdcbbeea9c6", "rel": "bookmark"}]}, {"uuid": "7ec0cfd3-4929-4193-9424-34f8522e62bd", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/7ec0cfd3-4929-4193-9424-34f8522e62bd", "rel": "self"}, {"href": "http://localhost/portgroups/7ec0cfd3-4929-4193-9424-34f8522e62bd", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions [0.083313s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-491a7efd-ad98-418d-9ea5-b5ab4251f102
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.627686+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-022e921d-45bb-4ed4-a5a8-460d970420ea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.627686+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "inspect wait", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2
    e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback [0.057331s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-b0b3950d-4349-4dea-87b4-b8e49138a703
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug [0.042660s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-90ce3150-a527-4746-8cef-ab2f73cdedf0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks [0.029466s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-041054b4-f02f-4352-8910-ee42e31c930f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": \"Traceback (most recent call last):\\n\\n  File \\\"/builddir/build/BUILD/ironic-29.1.0.dev138/ironic/api/method.py\\\", line 42, in callfunction\\n    result = f(self, *args, **kwargs)\\n\\n  File \\\"/builddir/build/BUILD/ironic-29.1.0.dev138/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\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version [0.088277s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b52eefdc-4c5c-49ec-8075-a455faafca79
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.732479+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_invalid [0.088456s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9044e93c-434c-46f7-960f-72eb45324d5d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/portgroups?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-4d21ec18-81dd-4b8f-a950-85131494566d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/portgroups?sort_key=internal_info WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9061bd87-1754-4633-bca5-2a7fe990d503
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/portgroups?sort_key=properties WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-de635c8b-c77a-425a-b794-9c4ccd8f8de0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_name [0.182397s] ... 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-9df48384-8223-468b-bb1b-8714bfbe9ad0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "40963a01-a146-4ed0-8b7e-5fcde5cd0225", "created_at": "2025-05-29T16:56:14.686472+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/40963a01-a146-4ed0-8b7e-5fcde5cd0225", "rel": "self"}, {"href": "http://localhost/runbooks/40963a01-a146-4ed0-8b7e-5fcde5cd0225", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "order": 1}]}
{3} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated [0.042174s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6fa2e94d-6087-4bfb-a49a-f463ceacb175
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": []}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed [0.047236s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-b21b3264-2968-4a02-b2f0-3aaf6a4f33d2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_hidden_in_lower_version [0.054949s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-20fad5a5-cca2-403a-8b5d-9f82afeefc31
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.789039+00:00", "updated_at": null, "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-698b8248-4e8c-4818-bad8-a3df23f3f887
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.789039+00:00", "updated_at": null, "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.test_middleware.TestBasicAuthMiddleware.test_not_authenticated [0.052101s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 401 Unauthorized
Content-Type: application/json
Www-Authenticate: Basic realm="Baremetal API"
{"error":{"message":"Authorization required","code":401}}
{3} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated [0.029502s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f1c07c8d-0c85-4887-8658-de6e5abdb3b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi [0.075328s] ... 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-fb5ba70e-8344-405f-893d-5960bc1bece3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:14.848617+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_name_old_api_version [0.110467s] ... 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\"}"}
{3} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled [0.059541s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f5d4ca05-be4e-4a85-846c-6c0a2a9da0ab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "http://spam.ham/eggs/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "versions": [{"id": "v1", "links": [{"href": "http://spam.ham/eggs/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id [0.057465s] ... 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-eb7c86f2-bab5-4cea-b5a4-1d2f91071ace
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field [0.147712s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1ba75357-5dcc-400c-b753-bf5f501574ed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:14.901428+00:00", "updated_at": null, "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.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled [0.047031s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5e647e57-0bea-48db-ad80-454cd8afe79a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "https://mycloud.com/ironic/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "versions": [{"id": "v1", "links": [{"href": "https://mycloud.com/ironic/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid [0.060554s] ... 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-fc285ec5-382d-416f-a838-7e3cf9e6515e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:14.968110+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_name_standard_trait [0.101986s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/57c750f6-8110-4676-81f5-af36fe9b17de WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2fe68855-0b0c-4ad9-8d43-6de1d7c8d99d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "57c750f6-8110-4676-81f5-af36fe9b17de", "created_at": "2025-05-29T16:56:14.942931+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/57c750f6-8110-4676-81f5-af36fe9b17de", "rel": "self"}, {"href": "http://localhost/runbooks/57c750f6-8110-4676-81f5-af36fe9b17de", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults [0.041472s] ... ok
{3} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning [0.040195s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_present [0.135722s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-657f835a-0cf6-4a24-a761-303721203745
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:15.059875+00:00", "updated_at": null, "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_runbook.TestPatch.test_update_not_found [0.093592s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/4d22640c-c704-4737-925e-536d8ff3ff38 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6b067fdc-1eb1-4535-9a65-f2b72c863c42
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Runbook 4d22640c-c704-4737-925e-536d8ff3ff38 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros [0.042452s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root [0.119591s] ... 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-72911d6e-56b0-4700-9dc5-6a9e4e26b3ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:15.066360+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.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros [0.051182s] ... ok
{3} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch [0.034477s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data [0.103695s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/7ee67897-70ea-4db1-9c1c-ac2efa4dc0ef WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6a50c841-466a-46c8-bead-c5f5b4e1311b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"uuid": "7ee67897-70ea-4db1-9c1c-ac2efa4dc0ef", "created_at": "2025-05-29T16:56:15.170706+00:00", "updated_at": null, "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/7ee67897-70ea-4db1-9c1c-ac2efa4dc0ef", "rel": "self"}, {"href": "http://localhost/nodes/7ee67897-70ea-4db1-9c1c-ac2efa4dc0ef", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7ee67897-70ea-4db1-9c1c-ac2efa4dc0ef/ports", "rel": "self"}, {"href": "http://localhost/nodes/7ee67897-70ea-4db1-9c1c-ac2efa4dc0ef/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7ee67897-70ea-4db1-9c1c-ac2efa4dc0ef/states", "rel": "self"}, {"href
    ": "http://localhost/nodes/7ee67897-70ea-4db1-9c1c-ac2efa4dc0ef/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7ee67897-70ea-4db1-9c1c-ac2efa4dc0ef/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7ee67897-70ea-4db1-9c1c-ac2efa4dc0ef/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7ee67897-70ea-4db1-9c1c-ac2efa4dc0ef/volume", "rel": "self"}, {"href": "http://localhost/nodes/7ee67897-70ea-4db1-9c1c-ac2efa4dc0ef/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent [0.080741s] ... 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-2dd44ca6-6125-45a7-b35d-c476d6246929
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_project_scope [0.121132s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/bc5242c4-8d2e-4696-aa19-7da08a6dc1b3 WITH [{'path': '/name', 'value': 'CUSTOM_NAME', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a9517ec3-9c41-4750-8674-e74a999d4a70
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "bc5242c4-8d2e-4696-aa19-7da08a6dc1b3", "created_at": "2025-05-29T16:56:15.173809+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/bc5242c4-8d2e-4696-aa19-7da08a6dc1b3", "rel": "self"}, {"href": "http://localhost/runbooks/bc5242c4-8d2e-4696-aa19-7da08a6dc1b3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch_validation_failed [0.035394s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum [0.038845s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address [0.069010s] ... 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-a422db9d-3cd2-40ca-9559-0af6c0538a4c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:15.240500+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_network_data_hidden_in_lower_version [0.101985s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-271e8800-9fa1-4975-9c78-e869728a154e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:15.273235+00:00", "updated_at": null, "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-313cfc76-e62c-4044-b6b8-08f6358c2c3f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:15.273235+00:00", "updated_at": null, "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.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_glance [0.037914s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_system_scope [0.094504s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/21e932f3-294e-45a3-9807-2fd01e0e6598 WITH [{'path': '/name', 'value': 'CUSTOM_NAME', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7b6ec35a-2875-46a1-8871-2ac312b3af35
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "21e932f3-294e-45a3-9807-2fd01e0e6598", "created_at": "2025-05-29T16:56:15.288696+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/21e932f3-294e-45a3-9807-2fd01e0e6598", "rel": "self"}, {"href": "http://localhost/runbooks/21e932f3-294e-45a3-9807-2fd01e0e6598", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_http_url [0.029071s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_agent_token [0.024218s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed [0.067740s] ... 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-fffcf423-b044-4a93-a14b-403565e0c153
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'mode' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_https_url [0.031552s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version [0.073773s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-55fd8fb1-44da-47dc-8783-47961de4bef1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:15.342220+00:00", "updated_at": null, "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-966878e8-1330-4071-b935-2d582bd728f2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:15.342220+00:00", "updated_at": null, "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_utils.TestCheckAllowFields.test_allow_configdrive_vendor_data [0.059145s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_not_allowed [0.061205s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field [0.054617s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-10e46833-ce4a-4008-9866-b747270de25d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:15.411141+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha256 [0.030866s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_steps [0.048702s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present [0.041770s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9f70606b-f17f-430d-9234-6d0d995c1d3a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:15.464783+00:00", "updated_at": null, "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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi [0.132998s] ... 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-471c1480-e77e-42cf-b247-07b540bf699e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:15.411649+00:00", "updated_at": "2025-05-29T16:56:15.432402+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-1eda87d6-284e-4a8d-b891-ce5cd0396bf2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:15.411649+00:00", "updated_at": "2025-05-29T16:56:15.432402+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha512 [0.024083s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates [0.024478s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_no_checksum_file_url [0.024528s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url [0.022633s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id [0.063170s] ... 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-69508cec-94a0-4d26-9e28-0b44c3a2e547
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected [0.069846s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/eb668ff0-eecb-489c-89cb-012c345487b0 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7021d21b-cdd7-4ef6-b8e8-186e4b0a8f27
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "eb668ff0-eecb-489c-89cb-012c345487b0", "created_at": "2025-05-29T16:56:15.523469+00:00", "updated_at": null, "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/eb668ff0-eecb-489c-89cb-012c345487b0", "rel": "self"}, {"href": "http://localhost/nodes/eb668ff0-eecb-489c-89cb-012c345487b0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/eb668ff0-eecb-489c-89cb-012c345487b0/ports", "rel": "self"}, {"href": "http://localhost/nodes/eb668ff0-eecb-489c-89cb-012c345487b0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/eb668ff0-eecb-489c-89cb-012c345487b0/states", "rel": "self"}, {"href": "http://localhost/nodes/eb668ff0-eecb-489c-89cb-012c345487b0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/eb668ff0-eecb-489c-89cb-012c345487b0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/eb668ff0-eecb-489c-89cb-012c345487b0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/eb668ff0-eecb-489c-89cb-012c345487b0/volume", "rel": "self"}, {"href": "http://localhost/nodes/eb668ff0-eecb-489c-89cb-012c345487b0/volume", "rel": "bookmark"}]}
GET /v1/nodes/82166070-1d80-42e4-8775-e97776859e34 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c93557e8-9c25-4ee3-8219-9e53fe59fff1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "82166070-1d80-42e4-8775-e97776859e34", "created_at": "2025-05-29T16:56:15.537064+00:00", "updated_at": null, "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/82166070-1d80-42e4-8775-e97776859e34", "rel": "self"}, {"href": "http://localhost/nodes/82166070-1d80-42e4-8775-e97776859e34", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/82166070-1d80-42e4-8775-e97776859e34/ports", "rel": "self"}, {"href": "http://localhost/nodes/82166070-1d80-42e4-8775-e97776859e34/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/82166070-1d80-42e4-8775-e97776859e34/states", "rel": "self"}, {"href": "http://localhost/nodes/82166070-1d80-42e4-8775-e97776859e34/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/82166070-1d80-42e4-8775-e97776859e34/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/82166070-1d80-42e4-8775-e97776859e34/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/82166070-1d80-42e4-8775-e97776859e34/volume", "rel": "self"}, {"href": "http://localhost/nodes/82166070-1d80-42e4-8775-e97776859e34/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers [0.059432s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_file [0.028449s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_string [0.023701s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi [0.039050s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version [0.057468s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a9e91d22-3a4a-461c-9e82-9277c5ef7fec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:15.591931+00:00", "updated_at": null, "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-52c2549b-0192-4059-b39e-bd85c98db577
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:15.591931+00:00", "updated_at": null, "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.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_validate_text_checksum [0.025845s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort [0.024200s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail [0.077916s] ... 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-c75654a8-1ba6-4098-a718-78368f8305e2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_validate_text_checksum_invalid [0.028657s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties [0.028943s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum [0.027621s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version [0.066221s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ea0d14e2-a6ab-4971-9b0e-47c97784efe7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:15.659468+00:00", "updated_at": null, "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-06f58743-0323-42ea-9c72-c4bbe4532537
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:15.659468+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reserv
    ation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive [0.038963s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid [0.068664s] ... 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-4fe6f95c-f000-43c2-b3f9-7ec41f6e1889
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_file_not_found [0.038862s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason [0.048396s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-810b8a1a-1612-4c3f-9690-40f945c4850e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:15.710956+00:00", "updated_at": null, "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"}]}
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_hashlib_not_supports_algo [0.024856s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mismatch [0.021853s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case [0.022028s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case_delimited [0.021256s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist [0.115856s] ... 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-c5349b94-9530-4e44-be2f-e163f2b9214f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_md5 [0.029512s] ... ok
{3} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task [0.058007s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat [0.058042s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi [0.150007s] ... 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-684567f7-01f1-4668-ba26-ad5541dcc53c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:15.894743+00:00", "updated_at": "2025-05-29T16:56:15.910494+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields [0.283422s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info [0.029621s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic [0.031051s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin [0.033187s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id [0.135507s] ... 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-375cb6bd-2015-4620-9526-99af9c9cad81
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired [0.375300s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/d9e982b8-7653-4c2e-890e-963d0549eb40 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0ad08d3d-5e16-466a-a3cf-d6bb5ed17424
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "d9e982b8-7653-4c2e-890e-963d0549eb40", "created_at": "2025-05-29T16:56:15.767527+00:00", "updated_at": null, "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/d9e982b8-7653-4c2e-890e-963d0549eb40", "rel": "self"}, {"href": "http://localhost/nodes/d9e982b8-7653-4c2e-890e-963d0549eb40", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d9e982b8-7653-4c2e-890e-963d0549eb40/ports", "rel": "self"}, {"href": "http://localhost/nodes/d9e982b8-7653-4c2e-890e-963d0549eb40/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d9e982b8-7653-4c2e-890e-963d0549eb40/states", "rel": "self"}, {"href": "http://localhost/nodes/d9e982b8-7653-4c2e-890e-963d0549eb40/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d9e982b8-7653-4c2e-890e-963d0549eb40/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d9e982b8-7653-4c2e-890e-963d0549eb40/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d9e982b8-7653-4c2e-890e-963d0549eb40/volume", "rel": "self"}, {"href": "http://localhost/nodes/d9e982b8-7653-4c2e-890e-963d0549eb40/volume", "rel": "bookmark"}]}
GET /v1/nodes/b9003f25-3926-45f5-bf21-d8ebd3e14a19 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5245b1c0-04a1-4f6f-95a5-d935ee8cff9c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "b9003f25-3926-45f5-bf21-d8ebd3e14a19", "created_at": "2025-05-29T16:56:15.793157+00:00", "updated_at": null, "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/b9003f25-3926-45f5-bf21-d8ebd3e14a19", "rel": "self"}, {"href": "http://localhost/nodes/b9003f25-3926-45f5-bf21-d8ebd3e14a19", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b9003f25-3926-45f5-bf21-d8ebd3e14a19/ports", "rel": "self"}, {"href": "http://localhost/nodes/b9003f25-3926-45f5-bf21-d8ebd3e14a19/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b9003f25-3926-45f5-bf21-d8ebd3e14a19/states", "rel": "self"}, {"href": "http://localhost/nodes/b9003f25-3926-45f5-bf21-d8ebd3e14a19/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b9003f25-3926-45f5-bf21-d8ebd3e14a19/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b9003f25-3926-45f5-bf21-d8ebd3e14a19/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b9003f25-3926-45f5-bf21-d8ebd3e14a19/volume", "rel": "self"}, {"href": "http://localhost/nodes/b9003f25-3926-45f5-bf21-d8ebd3e14a19/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin [0.050709s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties [0.029774s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_hidden_in_lower_version [0.051967s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8795692d-3447-46b6-bf7d-13e3f03154fd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:16.143518+00:00", "updated_at": null, "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-814f6c18-2071-4736-99c4-e5eb3ae3151c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:16.143518+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected
    ": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups [0.037359s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers [0.036007s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_reason_hidden_in_lower_version [0.065067s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-71f93efe-c813-464d-a314-df5a58087f46
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:16.198034+00:00", "updated_at": null, "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-fcc76974-2df0-491f-9bfe-823c4ebd1830
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:16.198034+00:00", "updated_at": null, "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_replace_node_uuid [0.135778s] ... 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-b80b3224-2eec-4cc2-915f-63bc54ea9d46
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:16.194683+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints [0.025037s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid [0.019124s] ... ok
{3} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface [0.331301s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface [0.021340s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid [0.055483s] ... 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-a9dc392e-afb1-4b49-b862-4f854b7f52e2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface [0.019661s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_with_reason [0.076037s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-10c459ca-25bc-4775-a62d-3527308fff5b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:16.295791+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": true, "retired_reason": "warranty expired", "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint [0.031349s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_traits [0.028105s] ... ok
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed [0.036483s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume [0.029650s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular [0.069634s] ... 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-6c24b909-688d-4cdc-94be-626f4dc8c590
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:16.327964+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound [0.028351s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot [0.081961s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/a6ac80d7-a8b8-40eb-a4a4-4f3407e2cf76 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9cf3bacd-68ef-4246-9052-20a01aad84ca
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "a6ac80d7-a8b8-40eb-a4a4-4f3407e2cf76", "created_at": "2025-05-29T16:56:16.363422+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/a6ac80d7-a8b8-40eb-a4a4-4f3407e2cf76", "rel": "self"}, {"href": "http://localhost/nodes/a6ac80d7-a8b8-40eb-a4a4-4f3407e2cf76", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a6ac80d7-a8b8-40eb-a4a4-4f3407e2cf76/ports", "rel": "self"}, {"href": "http://localhost/nodes/a6ac80d7-a8b8-40eb-a4a4-4f3407e2cf76/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a6ac80d7-a8b8-40eb-a4a4-4f3407e2cf76/states", "rel": "self"}, {"href": "http://localhost/nodes/a6ac80d7-a8b8-40eb-a4a4-4f3407e2cf76/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a6ac80d7-a8b8-40eb-a4a4-4f3407e2cf76/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a6ac80d7-a8b8-40eb-a4a4-4f3407e2cf76/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a6ac80d7-a8b8-40eb-a4a4-4f3407e2cf76/volume", "rel": "self"}, {"href": "http://localhost/nodes/a6ac80d7-a8b8-40eb-a4a4-4f3407e2cf76/volume", "rel": "bookmark"}]}
GET /v1/nodes/6a03f7fe-592f-4b7b-9ac9-3efb3856b7b3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6b753e75-3d78-4f28-871f-6c62fe368157
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "6a03f7fe-592f-4b7b-9ac9-3efb3856b7b3", "created_at": "2025-05-29T16:56:16.375847+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/6a03f7fe-592f-4b7b-9ac9-3efb3856b7b3", "rel": "self"}, {"href": "http://localhost/nodes/6a03f7fe-592f-4b7b-9ac9-3efb3856b7b3", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6a03f7fe-592f-4b7b-9ac9-3efb3856b7b3/ports", "rel": "self"}, {"href": "http://localhost/nodes/6a03f7fe-592f-4b7b-9ac9-3efb3856b7b3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6a03f7fe-592f-4b7b-9ac9-3efb3856b7b3/states", "rel": "self"}, {"href": "http://localhost/nodes/6a03f7fe-592f-4b7b-9ac9-3efb3856b7b3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6a03f7fe-592f-4b7b-9ac9-3efb3856b7b3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6a03f7fe-592f-4b7b-9ac9-3efb3856b7b3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6a03f7fe-592f-4b7b-9ac9-3efb3856b7b3/volume", "rel": "self"}, {"href": "http://localhost/nodes/6a03f7fe-592f-4b7b-9ac9-3efb3856b7b3/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url [0.036827s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs [0.060052s] ... ok
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data [0.025693s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format [0.076302s] ... 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-c746255c-d5c1-4dbe-89ca-4c9f3b7cadc1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail [0.048680s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version [0.103057s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-48c93884-1b6c-4fed-a009-713447c67c1d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:16.462750+00:00", "updated_at": null, "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-a4556857-1776-43b1-a633-2d6d2b56e3a2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:16.462750+00:00", "updated_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_update_byaddress_not_allowed [0.053407s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/52:54:00:cf:2d:31 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
{"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 52:54:00:cf:2d:31\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states [0.050592s] ... 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-d1615017-404f-4e07-9054-cfb082198d29
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "2000-01-01T00:00:00+00:00"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs [0.089395s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid [0.065009s] ... 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-eb7e9a8c-6f28-4393-bf80-88a4c849048c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:16.545547+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_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail [0.037162s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version [0.051060s] ... 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_node_states_boot_mode [0.072894s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/37f889c9-0420-4d64-b23a-9568a07e6bec/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bf0a64ef-59af-4db7-838e-862185bb9550
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "bios", "secure_boot": null}
GET /v1/nodes/e7d0df0d-556e-4a14-9023-e29da727e163/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-87b66dee-a377-4520-b91e-cee293fe25e9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": null}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs [0.031914s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail [0.029517s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname [0.056262s] ... 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-3aad2360-4588-4f68-8adb-fa585077e744
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:16.658091+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode_hidden_in_lower_version [0.060210s] ... 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-0662149f-7165-4793-bc1d-8f500aa8a343
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-85f3b208-8521-4685-b3d7-0307980f62eb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive [0.031922s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name [0.041377s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/eggs/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c73654bd-b290-426d-891c-51d4acc22cf1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "1971-03-09T00:00:00+00:00"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json [0.053387s] ... 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-d0b2d5a3-14eb-41d7-a589-5e2bd521af9a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:16.714428+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_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict [0.059278s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version [0.049233s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ddfe44b1-b76f-4952-83b6-fc31f5de4ea7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.8
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:16.762497+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-b3a309d0-c1a2-46f4-a8c4-300c1f8fa70f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:16.762497+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed [0.083430s] ... 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-7b0a8e28-f96d-43cb-a6cc-eeaf207d0434
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:16.771749+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_states_raid [0.041215s] ... 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-bdb03eab-3b13-4e5e-8de5-e379e7c0c4cd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "2000-01-01T00:00:00+00:00", "raid_config": {"foo": "bar"}, "target_raid_config": {"foo": "bar"}}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid [0.070032s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails [0.036251s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot [0.049963s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/6dab501e-b484-4320-a595-a48b0fa7bda8/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ca026d87-d4b5-40cf-938a-357d59fe751f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": true}
GET /v1/nodes/3c951713-5aac-4224-bd35-0eb446a06073/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bc51b1d7-f176-4501-91e7-99bf20e3c8a6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": false}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed [0.065079s] ... 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-b3e65dcc-c7c5-45d9-917d-99f9fba0327a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update portgroup \\\"6eb02b44-18a3-4659-8c0b-8d2802581ae4\\\" on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed [0.032474s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot_hidden_in_lower_version [0.040312s] ... 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-baa6779c-6d17-4459-8860-731782b55481
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c9d3ae88-425a-4aa1-8252-552ac887669d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps [0.022587s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name [0.052770s] ... 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-c72dae8e-266d-4e7f-a84c-e89c7c7c0f21
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty [0.023054s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported [0.027802s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_version_older [0.030250s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version [0.076990s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f495fe4d-8ffb-4e94-b048-45b1937b20b7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:16.966101+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-a6b11ae4-929b-430d-b715-e39f5660a40d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:16.966101+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_update_not_found [0.065777s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/022e40db-9808-4b9b-994c-1d9e39e71dbd WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-166fb677-c5ab-4b4e-9863-e95dd2bf2c3e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 022e40db-9808-4b9b-994c-1d9e39e71dbd could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs [0.025030s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version [0.052656s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8ed5a7ec-c62e-40cf-8489-6ab397997145
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:17.035416+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-df35a2cb-51ba-40a7-8794-35ad288667c9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:17.035416+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes
    /1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized [0.066799s] ... 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-a1368e99-0bf3-44ef-925a-6966378f9e82
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:17.043739+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail [0.072114s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one [0.043455s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-791b0be6-64b3-41a9-912b-2a2c8d587aef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed [0.059315s] ... 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-a0866de9-d4ad-4368-a2ea-0910623a65ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /internal_info. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail [0.040784s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one_field_specific_santization [0.060232s] ... 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-6a2ca430-6d47-42db-b0da-9c3d3482ce80
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "provision_state": "available", "maintenance": false, "instance_uuid": null, "last_error": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail [0.044114s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false [0.042978s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none [0.027203s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource [0.092020s] ... 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-83c24977-b117-49d9-a959-1d10250e1167
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"portgroups": [{"uuid": "292229f1-2d9e-4796-9a0d-03e0253019aa", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/292229f1-2d9e-4796-9a0d-03e0253019aa", "rel": "self"}, {"href": "http://localhost/portgroups/292229f1-2d9e-4796-9a0d-03e0253019aa", "rel": "bookmark"}]}, {"uuid": "d185ac63-efaf-4127-aed3-a7d140f3495e", "address": "52:54:00:cf:2d:31", "name": "pg-1", "links": [{"href": "http://localhost/v1/portgroups/d185ac63-efaf-4127-aed3-a7d140f3495e", "rel": "self"}, {"href": "http://localhost/portgroups/d185ac63-efaf-4127-aed3-a7d140f3495e", "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-15e4065d-84aa-417e-932f-ce56794c2ea8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"portgroups": [{"uuid": "292229f1-2d9e-4796-9a0d-03e0253019aa", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/292229f1-2d9e-4796-9a0d-03e0253019aa", "rel": "self"}, {"href": "http://localhost/portgroups/292229f1-2d9e-4796-9a0d-03e0253019aa", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=292229f1-2d9e-4796-9a0d-03e0253019aa"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group [0.020176s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail [0.024718s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link [0.036967s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-217b7698-c301-49ed-b65e-410df0f892fc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:17.290874+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none [0.033083s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions [0.065104s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-810eaa1b-4d47-4597-9aad-a295b97c00d4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:17.346433+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type [0.051751s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail [0.026720s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties [0.273859s] ... 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-6260b65c-c7a9-4a15-9108-7f238c448e72
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:17.383556+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "802.3ad", "name": "pg.1", "properties": {"bond_param": "100"}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version [0.061031s] ... 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\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none [0.022767s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs [0.018699s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version [0.057741s] ... 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-18773318-4458-459b-b80b-305e86b275ad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/properties/abc', 'op': 'add', 'value': 123}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-6fc2035f-d7c5-4f80-919f-13969d3d27cc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries [1.037934s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail [0.030067s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs [0.023542s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail [0.022527s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported [0.068673s] ... 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-ab33c4de-3e05-434e-8147-208ec8600ab0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:17.516126+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes [0.070565s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource [0.130364s] ... 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-808df1e7-4c22-450c-880a-3ed47ee70ea8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "bb02908c-c8f7-466c-bb1e-41fe00637cbd", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/bb02908c-c8f7-466c-bb1e-41fe00637cbd", "rel": "self"}, {"href": "http://localhost/ports/bb02908c-c8f7-466c-bb1e-41fe00637cbd", "rel": "bookmark"}]}, {"uuid": "aa734459-b086-4661-bf07-a1c078ca920b", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/aa734459-b086-4661-bf07-a1c078ca920b", "rel": "self"}, {"href": "http://localhost/ports/aa734459-b086-4661-bf07-a1c078ca920b", "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-aa58c997-48f2-496c-a0c8-e439b3bd5a0f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "bb02908c-c8f7-466c-bb1e-41fe00637cbd", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/bb02908c-c8f7-466c-bb1e-41fe00637cbd", "rel": "self"}, {"href": "http://localhost/ports/bb02908c-c8f7-466c-bb1e-41fe00637cbd", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=bb02908c-c8f7-466c-bb1e-41fe00637cbd"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs [0.038365s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version [0.042351s] ... 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\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail [0.029039s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident [0.035202s] ... 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.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client [0.064786s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link [0.039472s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2897389f-3fd0-458f-a5b7-ae0646447720
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:17.632736+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_bmc_address_as_none [0.048087s] ... 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-b8edc161-e6f5-4062-bc39-aa974127a5da
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "12bb3806-f54c-4227-b27b-24a53476a26b"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver [0.051477s] ... ok
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active [0.052678s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found [0.038516s] ... 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-52f3e334-3e4b-40b7-a3ff-0d59bfea9a3f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup None could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail [0.039913s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_inspector_compatibility [0.057538s] ... 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-b2408c7b-7e67-41c5-8310-e7ef7c3d0f9e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "935f58e5-22dd-431d-bdd9-443d549dd78e"}
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context [0.039028s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields [0.028124s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid [0.042277s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/ports WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail [0.024359s] ... ok
{3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry [0.046530s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_invalid_schema [0.053550s] ... 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-411f4a4d-2900-4d59-b53b-66f550159248
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for data: 'interfaces' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class [0.020760s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed [0.067848s] ... 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-83990e94-372f-430b-ab2a-eb71bc14356e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found [0.053892s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail [0.055911s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs [0.026944s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key [0.045733s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7eb051fa-297d-4c03-856c-13285c71130a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "1147417f-c990-41a8-8f60-ddabde12029f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1147417f-c990-41a8-8f60-ddabde12029f", "rel": "self"}, {"href": "http://localhost/nodes/1147417f-c990-41a8-8f60-ddabde12029f", "rel": "bookmark"}]}, {"uuid": "76295e14-b088-47c7-bbd0-29fec8aaab81", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/76295e14-b088-47c7-bbd0-29fec8aaab81", "rel": "self"}, {"href": "http://localhost/nodes/76295e14-b088-47c7-bbd0-29fec8aaab81", "rel": "bookmark"}]}, {"uuid": "8c9c175e-6531-4cbd-898b-a1fd809e37c6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/8c9c175e-6531-4cbd-898b-a1fd809e37c6", "rel": "self"}, {"href": "http://localhost/nodes/8c9c175e-6531-4cbd-898b-a1fd809e37c6", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success [0.043810s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_new_api [0.105902s] ... 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-621f3cb9-1f7e-4481-ae01-26d6dfee1be2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "76395505-d390-4ae9-8e33-13086c091bfb", "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/76395505-d390-4ae9-8e33-13086c091bfb", "rel": "self"}, {"href": "http://localhost/nodes/76395505-d390-4ae9-8e33-13086c091bfb", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "noop", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": null, "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs_fail [0.028620s] ... ok
{3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups [0.041894s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs [0.021368s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_no_usable_lookup_data [0.058003s] ... 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-83af1b2e-6baa-463b-a79c-32088febacc0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No lookup information provided\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface [0.029339s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed [0.077862s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7ee0dd3f-350e-4bf9-b975-7cacbff91b21
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "1b82b7e5-e989-4255-8755-10440b62803c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1b82b7e5-e989-4255-8755-10440b62803c", "rel": "self"}, {"href": "http://localhost/nodes/1b82b7e5-e989-4255-8755-10440b62803c", "rel": "bookmark"}]}, {"uuid": "30e20355-845f-470a-a6bc-6dda3e95daaf", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/30e20355-845f-470a-a6bc-6dda3e95daaf", "rel": "self"}, {"href": "http://localhost/nodes/30e20355-845f-470a-a6bc-6dda3e95daaf", "rel": "bookmark"}]}, {"uuid": "1136259a-7e8d-4d8e-bb96-713cb554afae", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1136259a-7e8d-4d8e-bb96-713cb554afae", "rel": "self"}, {"href": "http://localhost/nodes/1136259a-7e8d-4d8e-bb96-713cb554afae", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval [0.050697s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail [0.036737s] ... ok
{3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.036623s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid [0.059077s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f50fd108-abd9-4d4b-90c4-454cc073f113
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=properties WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1c560ac8-1ce4-4316-9ce7-49b7aa35b42e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=driver_info WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-13c450eb-9190-4442-97f4-34313da78c93
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_info is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5e79f544-dac2-410d-ad84-8fe0fda7f717
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=instance_info WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5d505db4-33d4-4c11-a984-aa3dd9778b38
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value instance_info is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=driver_internal_info WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-8068d4cc-3863-4762-8276-c4493f13524f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_internal_info is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=clean_step WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-640a2464-6888-4dd1-9022-afc9ac888076
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value clean_step is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=traits WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0c459d57-80ce-4062-bda7-c6024b542893
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail [0.051270s] ... ok
{3} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached [0.037449s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed [0.038276s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-e187be6d-18a1-4307-a123-4d5cbc1ffd17
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_old_api_version [0.123138s] ... 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-4451cf92-231a-4383-af7d-5848cf001c84
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"API version 1.84 or newer is required\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test__hanlde_zstd_compression [0.038424s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class [0.063378s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test__hanlde_zstd_compression_disabled [0.039737s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive [0.080414s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4fe2225a-a484-4611-ae8d-89cf33c66243
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "0584d038-ae4e-43ff-bcd1-3cdafbb6fbe5", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0584d038-ae4e-43ff-bcd1-3cdafbb6fbe5", "rel": "self"}, {"href": "http://localhost/nodes/0584d038-ae4e-43ff-bcd1-3cdafbb6fbe5", "rel": "bookmark"}]}, {"uuid": "914f2d84-b121-4831-aa58-12912bbcd48a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/914f2d84-b121-4831-aa58-12912bbcd48a", "rel": "self"}, {"href": "http://localhost/nodes/914f2d84-b121-4831-aa58-12912bbcd48a", "rel": "bookmark"}]}, {"uuid": "0a69b6d2-642e-4aa3-ad79-698ace75223f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0a69b6d2-642e-4aa3-ad79-698ace75223f", "rel": "self"}, {"href": "http://localhost/nodes/0a69b6d2-642e-4aa3-ad79-698ace75223f", "rel": "bookmark"}]}]}
GET /v1/nodes?associated=FALSE WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8c1dd012-df1d-4648-9d56-118981166c19
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "0584d038-ae4e-43ff-bcd1-3cdafbb6fbe5", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0584d038-ae4e-43ff-bcd1-3cdafbb6fbe5", "rel": "self"}, {"href": "http://localhost/nodes/0584d038-ae4e-43ff-bcd1-3cdafbb6fbe5", "rel": "bookmark"}]}, {"uuid": "914f2d84-b121-4831-aa58-12912bbcd48a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/914f2d84-b121-4831-aa58-12912bbcd48a", "rel": "self"}, {"href": "http://localhost/nodes/914f2d84-b121-4831-aa58-12912bbcd48a", "rel": "bookmark"}]}, {"uuid": "0a69b6d2-642e-4aa3-ad79-698ace75223f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0a69b6d2-642e-4aa3-ad79-698ace75223f", "rel": "self"}, {"href": "http://localhost/nodes/0a69b6d2-642e-4aa3-ad79-698ace75223f", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_custom [0.021279s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail [0.045590s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_default [0.021037s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_bad_invalid_agent_status [0.089127s] ... 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-8ae60408-515c-4f2d-8af3-1ef02aff8bfc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties [0.028766s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_raw_smaller [0.023477s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail [0.026467s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size [0.020684s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit [0.089136s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=False&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-683939c2-0103-41ed-8020-fc57b0af4aca
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "0d146614-1f1c-42f3-b717-ec4b1f204e75", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0d146614-1f1c-42f3-b717-ec4b1f204e75", "rel": "self"}, {"href": "http://localhost/nodes/0d146614-1f1c-42f3-b717-ec4b1f204e75", "rel": "bookmark"}]}, {"uuid": "a986ebdb-7996-4084-b4b7-040f37af7a38", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a986ebdb-7996-4084-b4b7-040f37af7a38", "rel": "self"}, {"href": "http://localhost/nodes/a986ebdb-7996-4084-b4b7-040f37af7a38", "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=a986ebdb-7996-4084-b4b7-040f37af7a38"}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service [0.034692s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_different_callback_url [0.072534s] ... 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-230bbd19-0a4d-4e76-a6d4-71f030413502
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_logical [0.044227s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_auth_data_checksum [0.033155s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_physical [0.036100s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name [0.061120s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/validate?node=spam WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-55eef54b-059f-47a7-b233-03aac4a62f2f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_file_url [0.042848s] ... 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-5aa3fcf4-4cff-4f9a-a146-69c6aa90e304
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"An issue with the supplied \\\"callback_url\\\" has been detected.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw [0.031513s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported [0.035776s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/validate?node=spam WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-0dbec244-2fde-41e1-9891-198579fbbbdf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_combined_algo [0.029519s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_invalid [0.060903s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_node_not_found [0.067482s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/e1a19fe7-86e0-4c53-adf0-e9843090234f WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-fbc9856c-8ecd-40b7-8a30-cc347dedaa2f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node e1a19fe7-86e0-4c53-adf0-e9843090234f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_no_checksum_algo [0.032673s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_with_checksum [0.032961s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged [0.048789s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid [0.110681s] ... 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-00cebbdf-e692-47a4-8ad9-d46914e82982
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok [0.081338s] ... 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-2e905d47-59a7-4f34-9285-966644a6142c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged_combine_ok [0.047618s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_with_checksum_mismatch [0.058613s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_set_both_switches [0.036039s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service [0.040071s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface [0.092212s] ... 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-1c5c19bf-ba7e-4dea-bb73-9eaff93f6ee7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type [0.045079s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service [0.055119s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_status_and_status [0.113283s] ... 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-b0dc3d5a-465a-4962-aee4-69afc7c47c5b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_invalid_uuid_or_name [0.038939s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1234~1234~1234 WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-242bc5a7-ec1f-4b39-9e7e-3d423d0d6cab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a logical name or UUID but received 1234~1234~1234.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_datapath_id [0.038895s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value [0.044471s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_gpt [0.062864s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_token [0.090258s] ... 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-7b3e4846-dcaf-428b-8c08-0017a4306047
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource [0.098044s] ... 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-c3729383-bf02-4d0c-827d-48ebf8498ee8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "cda8fb08-6ba6-4586-a618-2f9afe48330c", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/cda8fb08-6ba6-4586-a618-2f9afe48330c", "rel": "self"}, {"href": "http://localhost/volume/connectors/cda8fb08-6ba6-4586-a618-2f9afe48330c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "d333f76f-afd1-4d77-8860-ab3c95fd98ed", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/d333f76f-afd1-4d77-8860-ab3c95fd98ed", "rel": "self"}, {"href": "http://localhost/volume/connectors/d333f76f-afd1-4d77-8860-ab3c95fd98ed", "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-5a01780c-8526-4c36-aadc-2ba0fde29511
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "cda8fb08-6ba6-4586-a618-2f9afe48330c", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/cda8fb08-6ba6-4586-a618-2f9afe48330c", "rel": "self"}, {"href": "http://localhost/volume/connectors/cda8fb08-6ba6-4586-a618-2f9afe48330c", "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=cda8fb08-6ba6-4586-a618-2f9afe48330c"}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_gpt_backward_compatibility [0.058887s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key [0.074439s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_local_link_keys_mandatory [0.033285s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca [0.090154s] ... 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-de5fc7ac-ade9-4e0b-9681-e152a18865f1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw [0.067669s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_missing_local_link_mandatory_key [0.035230s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id [0.040079s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_gpt_format [0.058692s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_version [0.104476s] ... 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-0667503b-19bb-4783-b67f-5109b7e7e41b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_hostname_missing [0.047333s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_iso [0.060849s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_mandatory [0.041052s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format [0.047742s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name [0.080075s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/test.1 WITH {'callback_url': 'https://url', 'agent_token': 'token'} GOT Response: 202 Accepted
Openstack-Request-Id: req-9ee5c8b3-241e-415a-85d7-5cb87b46c8d2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing [0.060412s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found [0.284758s] ... 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-149fd77b-9616-4e65-838f-90feebfd4cb2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_fails_safety_check [0.057132s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid [0.036525s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/volume/connectors WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_for_anaconda [0.083497s] ... 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-ad7c11f1-1b2c-4a68-b640-b35051e59fed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_permitted_format [0.046597s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource [0.043499s] ... 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-8765a3e3-a574-4045-9390-5698bb4ee8a5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion [0.046993s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version [0.054672s] ... 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-a93c2a36-2287-4304-8808-26f23f5750dd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.31
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_with_json [0.083508s] ... 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-9a26d4ed-1f52-4226-baa9-17a7000fb747
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled [0.066056s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link [0.059875s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e284d3de-1b4e-4313-9d5e-96e380df4bbd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:19.122231+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_verify_ca_error [0.071242s] ... 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-da11fe36-2855-4fd1-bf31-a24795d64278
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.67
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_verify_ca\\\" not recognised in this version\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled_fails_to_convert [0.053566s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource [0.060283s] ... 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-c2da0d24-dab4-457d-82cd-bcf88858f883
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "dfa96d43-6fe3-4744-823a-75922f3d222b", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/dfa96d43-6fe3-4744-823a-75922f3d222b", "rel": "self"}, {"href": "http://localhost/volume/targets/dfa96d43-6fe3-4744-823a-75922f3d222b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "6d8ede44-dccc-4ecf-b3c5-8449007858b4", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6d8ede44-dccc-4ecf-b3c5-8449007858b4", "rel": "self"}, {"href": "http://localhost/volume/targets/6d8ede44-dccc-4ecf-b3c5-8449007858b4", "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-919adf53-cf62-4e56-91c4-83370223279a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "dfa96d43-6fe3-4744-823a-75922f3d222b", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/dfa96d43-6fe3-4744-823a-75922f3d222b", "rel": "self"}, {"href": "http://localhost/volume/targets/dfa96d43-6fe3-4744-823a-75922f3d222b", "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=dfa96d43-6fe3-4744-823a-75922f3d222b"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional [0.274802s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_length [0.044196s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error [0.073984s] ... 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-edbd8fae-a1ec-432d-8603-1c4b0e780c58
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.35
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields [0.022666s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found [0.049762s] ... 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-196cd274-18bf-48fc-a80f-82b5ddcbc426
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links [0.018899s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_type [0.047225s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_args [0.019606s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid [0.032429s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/volume/targets WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error [0.059995s] ... 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-0aebac11-7623-4bb3-b568-f9d9cce1aaf3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.71
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fields \\\"agent_status\\\" and \\\"agent_status_message\\\" not recognised.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_base_attributes [0.030427s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_other_error [0.047087s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPost.test_create_node_with_shard [0.098567s] ... 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-5dbe1287-11f9-4e57-89af-4402b220071c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:19.360172+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-79f0eed7-5e45-4087-8094-ce4b4c8f8ef0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:19.360172+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "dep
    loy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_version [0.096198s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/8eb9a8cc-2f68-4281-b89b-8877a06da2d8 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2e9553ec-8f43-4103-ad34-4269b6f2ae4f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi [0.103451s] ... 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-6375980f-a557-4367-81b0-600ad854a758
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:19.342375+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"}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_redirect [0.104251s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPost.test_create_node_with_shard_fail_wrong_version [0.073644s] ... 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-4ac2df2d-cb37-4415-b3fb-98145ee3bffc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version [0.081127s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id [0.045967s] ... 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-48d69aae-5207-4079-b15c-50035feea63c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_returns_none [0.066850s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid [0.057322s] ... 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-3132ddb4-0d16-47d7-83a4-88b21b29dc5d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:19.504760+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok [0.065578s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple [0.074790s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node [0.114632s] ... 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-e56a0d6b-dd68-4d3c-9554-21bf43bc9d69
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-096e7979-b621-4b6e-a2ad-ec7c720732cc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type [0.059653s] ... 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-cf2ea170-ae43-43e7-9282-a9797e2323a0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high [0.079771s] ... ok
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_explicit [0.065498s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low [0.052345s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root [0.086008s] ... 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-b3a6ded3-e319-437d-92b9-707deda30f47
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:19.636735+00:00", "updated_at": null, "connector_id": "test-connector-id-123", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean [0.105989s] ... 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-f8da2be7-145d-4d6a-9c47-90d95df3833f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:19.661619+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-2419cbd4-33b4-4c06-94c3-366d65fbe78d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:19.661619+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_root.TestV1Routing.test_max_version [0.035428s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9844eef8-bc4d-486e-9f51-1fdfe06804b9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}], "conductors": [{"href": "http://localhost/v1/conductors/", "rel": "self"}, {"href": "http://localhost/conductors/", "rel": "bookmark"}], "allocations": [{"href": "http://localhost/v1/allocations/", "rel": "self"}, {"href": "http://localhost/allocations/", "rel": "bookmark"}], "events": [{"href": "http://localhost/v1/events/", "rel": "self"}, {"href": "http://localhost/events/", "rel": "bookmark"}], "deploy_templates": [{"href": "http://localhost/v1/deploy_templates/", "rel": "self"}, {"href": "http://localhost/deploy_templates/", "rel": "bookmark"}], "shards": [{"href": "http://localhost/v1/shards/", "rel": "self"}, {"href": "http://localhost/shards/", "rel": "bookmark"}], "runbooks": [{"href": "http://localhost/v1/runbooks/", "rel": "self"}, {"href": "http://localhost/runbooks/", "rel": "bookmark"}], "inspection_rules": [{"href": "http://localhost/v1/inspection_rules/", "rel": "self"}, {"href": "http://localhost/inspection_rules/", "rel": "bookmark"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src [0.084480s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent [0.056037s] ... 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-d775756c-4050-42c5-91fc-ba62760bd6c4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_microversion_headers [0.037607s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version [0.070613s] ... 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-3378499c-699f-4f79-9097-c0d360e43334
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field [0.049208s] ... 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-5599482e-5c02-43bd-b8a8-aaac3d562dc1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /value. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_min_version [0.068983s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bcaafb02-12bc-4c90-b764-402cad8f6703
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image [0.094067s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version [0.034344s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-459fdab0-900a-49ac-99f4-76f14fff2635
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image_with_type [0.054612s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_empty [0.032076s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e2581227-ea00-435f-bdae-a4b516c8503a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"shards": []}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance [0.031353s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi [0.143770s] ... 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-8b393189-64b6-4b60-8e3d-c9c3292fac2d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:19.810912+00:00", "updated_at": "2025-05-29T16:56:19.821399+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-7f16cc7f-4e01-4d07-96aa-d9ee81c24818
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:19.810912+00:00", "updated_at": "2025-05-29T16:56:19.821399+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image [0.025542s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_get_one [0.077158s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5a5d3953-86b8-49cb-925e-e0f8309ae5b8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image_oci [0.022728s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response [0.218132s] ... 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-a49b229b-2721-47d9-8d2a-b1e1b36ec2dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d4e90502-2518-43b9-8be3-0c558f6d2333
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '840d0e9f-226d-4eb1-8859-7824e38166a2', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/840d0e9f-226d-4eb1-8859-7824e38166a2
Openstack-Request-Id: req-016044b3-c1f3-4068-ae8d-243c744ab31b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "840d0e9f-226d-4eb1-8859-7824e38166a2", "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/840d0e9f-226d-4eb1-8859-7824e38166a2", "rel": "self"}, {"href": "http://localhost/nodes/840d0e9f-226d-4eb1-8859-7824e38166a2", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/840d0e9f-226d-4eb1-8859-7824e38166a2/ports", "rel": "self"}, {"href": "http://localhost/nodes/840d0e9f-226d-4eb1-8859-7824e38166a2/ports", "rel": "bookmark"}]}
GET /v1/nodes/840d0e9f-226d-4eb1-8859-7824e38166a2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3a753766-4949-4f99-a8f8-61053ad30044
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "840d0e9f-226d-4eb1-8859-7824e38166a2", "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/840d0e9f-226d-4eb1-8859-7824e38166a2", "rel": "self"}, {"href": "http://localhost/nodes/840d0e9f-226d-4eb1-8859-7824e38166a2", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/840d0e9f-226d-4eb1-8859-7824e38166a2/ports", "rel": "self"}, {"href": "http://localhost/nodes/840d0e9f-226d-4eb1-8859-7824e38166a2/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance [0.027642s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id [0.075768s] ... 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-bf9af768-1a97-48e3-959c-9c15571dc607
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_get_one_wrong_version [0.059540s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d6f35dbb-9560-4104-bd2c-11568b0d6390
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow shards\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found [0.094080s] ... 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-23b0c674-b65f-44c5-94ad-6beb8353fbb0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_post [0.066212s] ... 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_volume_connector.TestPatch.test_remove_non_existent_property_fail [0.115095s] ... 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-64251346-217d-41e5-bf9e-4cb48ddd943f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_put [0.070970s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/shards WITH {} GOT Response: 405 Method Not Allowed
Allow: GET
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll [0.111720s] ... 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-fc608749-1963-4313-af61-6a77d1826aa1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.11
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:20.167654+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-b2f864ac-59ac-44cc-8de9-22021ff03e2c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:20.167654+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid [0.081430s] ... 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-4cfefe17-ae13-458d-b5e0-e86bc1b0b7f1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_wrong_version [0.063954s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-62141c47-4b95-42f2-a2aa-e3cc58b85ab7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow shards\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_all_conditions_fail [0.242682s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_node_default_state_none [0.110436s] ... 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-b65eefed-6d2f-4e54-9a87-c96f63e08799
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:20.266702+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-6ab4a3df-d6ae-4b73-8226-fa286c1672d6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:20.266702+00:00", "updated_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-5f0b6c2f-ae8d-4bcb-acfd-1341ea5db451
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:20.266702+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "i
    nspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_ironic_exception [0.080160s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.TestPatch.test_replace_connector_id_already_exist [0.116066s] ... 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-99f0310c-6d13-4164-9923-0d450ee8b2c5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 already exists.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_multiple_shards [0.148965s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-60d90d3a-1226-46d0-8a18-63db2257a50d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"shards": [{"name": "shard5", "count": 5}, {"name": "shard4", "count": 4}, {"name": "shard3", "count": 3}, {"name": "shard2", "count": 2}, {"name": "shard1", "count": 1}]}
{3} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_no_rules [0.071445s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_nodes_but_no_shards [0.038277s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-71af08e5-5540-40b8-854f-65dbb84b04f2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"shards": [{"name": "None", "count": 5}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description [0.122779s] ... 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-440e1ebd-af3e-407e-b27f-fc42f97085b6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:20.397554+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-11576cb7-1ca2-4b8a-abb1-503eaca73596
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:20.397554+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fak
    e", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": "useful stuff", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_some_conditions_pass [0.051781s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_one_shard [0.039857s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2681428c-643f-4c7d-9f33-af97749f4c48
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"shards": [{"name": "shard1", "count": 1}]}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy [0.026795s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize [0.070557s] ... 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-e0fce304-6732-41f6-8b8f-76c246ec39ef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781
    234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed' is too long\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden [0.033904s] ... ok
{3} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_success [0.078078s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project [0.020190s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state [0.218668s] ... 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-fa18792a-a9a3-4252-83f3-a9136f8e2c6f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_non_admin [0.034624s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_disable_power_off [0.094156s] ... 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-8aeb7c30-f3cb-43fa-aa23-676617a0e2d0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:20.571414+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-19297306-1e74-4038-aa9d-935dc9af80ee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:20.571414+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode"
    : null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": true, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve [0.026451s] ... ok
{3} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_with_always_mask [0.068608s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port [0.035719s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port_policy_forbidden [0.020995s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_policy_notfound [0.020157s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_disable_power_off_old_api_version [0.081218s] ... 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-e6ee93e8-579f-4d79-8b7f-c473873b1673
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.94
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi [0.139513s] ... 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-fbc89666-7e92-4921-81a2-6d1d55d34c6c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:20.611080+00:00", "updated_at": "2025-05-29T16:56:20.613878+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.common.test_inspection_rule.TestApplyRules.test_apply_rules_with_never_mask [0.094048s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name [0.032324s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name [0.033751s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id [0.107325s] ... 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-5f7d65ae-f4a6-476c-9ca9-377e74982108
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id [0.111207s] ... 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-0c566884-9be0-4e58-a632-7ee8c0e351fa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:20.765368+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-2c1a895b-59f0-4fd6-9d89-c9f582dbdae3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:20.765368+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name [0.047424s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name [0.030113s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name [0.020129s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid [0.064942s] ... 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-1b44a19e-0f58-4aa0-95ea-1bae3659fabf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:20.825341+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid [0.019776s] ... ok
{3} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_with_sensitive_mask [0.184436s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_node_explicit_default_conductor_group [0.099132s] ... 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-84af7029-4511-468c-a563-3e20fc81ecdf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:20.871107+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-4b8ee01f-d597-4498-9327-07ded9d7e814
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:20.871107+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "conductor_group": "mouse", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive"
    : "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name [0.042858s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type [0.090789s] ... 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-436f8f87-8126-4927-9a79-57949c4d6a15
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_is_true_false_operators_edge_cases [0.147553s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_node_explicit_network_interface [0.138089s] ... 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-acdb29f4-6b28-439b-9ec7-b18bffca0c7d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "neutron", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1867df06-4db7-4ffc-b584-1c84e1048d2c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "neutron", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href":
     "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid [0.131951s] ... 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-78db6b9d-7ba8-4d68-9435-663100b3fbcf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name [0.220164s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class [0.094839s] ... 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-685a9e03-f9c1-4dae-b6ff-891bea0a4701
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:21.104445+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-8f6f3e16-bc82-4bb6-9e88-5214f27fc756
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:21.104445+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_utils.TestNodeIdent.test_populate_node_uuid [0.023189s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid [0.020487s] ... ok
{3} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_oneofoperator_edge_cases [0.122868s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid_not_found [0.019398s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular [0.106081s] ... 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-729efdb7-b79f-430f-8fd0-a6735e57660b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:21.142117+00:00", "updated_at": null, "connector_id": "test-connector-id-999", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id [0.028046s] ... ok
{3} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_operator_exceptions [0.071732s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id_not_found [0.042241s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface [0.117917s] ... 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-6781f728-70c1-4084-9a7a-0ccaf2f26031
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aaaf4b92-a638-426e-9685-767b6c36fb63
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_in
    terface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name [0.033633s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid [0.117090s] ... 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-cfe0adad-0aa5-4f06-b8e9-b127e4a855cd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:21.262958+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": "bar"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name [0.019668s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid [0.018871s] ... ok
{3} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_operator_with_loop [0.081484s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.TestPatch.test_update_invalid_api_version [0.037005s] ... 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_node.TestPost.test_create_node_fails_on_disabled_bios_boot_mode [0.104174s] ... 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-670a8644-6047-4f07-8424-21d266404d61
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'bios' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links [0.043441s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-01b931ef-f288-42a7-84a8-ed24cf03ed20
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "0a7f142f-ee76-4a17-acfe-c99bea90e21d", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0a7f142f-ee76-4a17-acfe-c99bea90e21d", "rel": "self"}, {"href": "http://localhost/volume/targets/0a7f142f-ee76-4a17-acfe-c99bea90e21d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "615538a3-5bca-4d3c-b961-804c7c87740e", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/615538a3-5bca-4d3c-b961-804c7c87740e", "rel": "self"}, {"href": "http://localhost/volume/targets/615538a3-5bca-4d3c-b961-804c7c87740e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "c56b5fc7-e52f-4e40-8c75-6bfc04c8a072", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/c56b5fc7-e52f-4e40-8c75-6bfc04c8a072", "rel": "self"}, {"href": "http://localhost/volume/targets/c56b5fc7-e52f-4e40-8c75-6bfc04c8a072", "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=c56b5fc7-e52f-4e40-8c75-6bfc04c8a072"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found [0.069131s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/ffd1f883-720d-49ff-ae8c-05791c5cba52 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e3e3b93f-02b8-47f2-ac73-0201c7cdf150
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector ffd1f883-720d-49ff-ae8c-05791c5cba52 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields [0.056012s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3ffbe0d4-fa06-4023-bde8-9a0a797b4d21
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "024d487e-484f-454b-9db0-921d963ba909", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/024d487e-484f-454b-9db0-921d963ba909", "rel": "self"}, {"href": "http://localhost/volume/targets/024d487e-484f-454b-9db0-921d963ba909", "rel": "bookmark"}]}, {"uuid": "57311742-2efc-4d1f-91cb-925b03dc6878", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/57311742-2efc-4d1f-91cb-925b03dc6878", "rel": "self"}, {"href": "http://localhost/volume/targets/57311742-2efc-4d1f-91cb-925b03dc6878", "rel": "bookmark"}]}, {"uuid": "b9c6c3e1-0eed-44f0-8f32-898c37ac798f", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/b9c6c3e1-0eed-44f0-8f32-898c37ac798f", "rel": "self"}, {"href": "http://localhost/volume/targets/b9c6c3e1-0eed-44f0-8f32-898c37ac798f", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=b9c6c3e1-0eed-44f0-8f32-898c37ac798f"}
{3} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_rule_operators [0.106971s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_node_fails_on_disabled_uefi_boot_mode [0.111925s] ... 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-b410e9e1-3625-48af-8a8b-42ab57eff32f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'uefi' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector [0.068190s] ... 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-c10d9937-886e-49cf-872d-32e38db177be
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d316c629-2d04-4083-a5d6-39cf6ae1196d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit [0.058976s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6e384015-f83a-4e9e-8a12-6f74fb1c3f57
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "aa0c153b-f47b-45e7-ac15-7105d852c550", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/aa0c153b-f47b-45e7-ac15-7105d852c550", "rel": "self"}, {"href": "http://localhost/volume/targets/aa0c153b-f47b-45e7-ac15-7105d852c550", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e805d923-6baf-406d-8e79-db2762701f73", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/e805d923-6baf-406d-8e79-db2762701f73", "rel": "self"}, {"href": "http://localhost/volume/targets/e805d923-6baf-406d-8e79-db2762701f73", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "bc5924cd-d6a1-4597-9a02-0a43358b01aa", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/bc5924cd-d6a1-4597-9a02-0a43358b01aa", "rel": "self"}, {"href": "http://localhost/volume/targets/bc5924cd-d6a1-4597-9a02-0a43358b01aa", "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=bc5924cd-d6a1-4597-9a02-0a43358b01aa"}
{3} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None [0.064427s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_node_fails_on_invalid_boot_mode [0.028458s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id [0.067526s] ... 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-b6482424-f832-4967-897e-666e6389e3f6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:21.530763+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-542a49a8-05d8-43b3-933e-b1c76da5fe43
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:21.530763+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": 123}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail [0.082647s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?detail=True&limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eb18bd04-ea42-4038-bc59-e510d6ed7eae
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "ab69a9f7-9840-47e1-a9b8-304dcc3daa75", "created_at": "2025-05-29T16:56:21.540225+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/ab69a9f7-9840-47e1-a9b8-304dcc3daa75", "rel": "self"}, {"href": "http://localhost/volume/targets/ab69a9f7-9840-47e1-a9b8-304dcc3daa75", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "9bf0d3a5-a740-4fb4-a1e5-979438994520", "created_at": "2025-05-29T16:56:21.541028+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/9bf0d3a5-a740-4fb4-a1e5-979438994520", "rel": "self"}, {"href": "http://localhost/volume/targets/9bf0d3a5-a740-4fb4-a1e5-979438994520", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "fe86ea6f-121c-471a-adc5-4d5382bfdf53", "created_at": "2025-05-29T16:56:21.541793+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/fe86ea6f-121c-471a-adc5-4d5382bfdf53", "rel": "self"}, {"href": "http://localhost/volume/targets/fe86ea6f-121c-471a-adc5-4d5382bfdf53", "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=fe86ea6f-121c-471a-adc5-4d5382bfdf53"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface [0.072033s] ... 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-55178065-1e9b-4f48-8fe6-35d51b138d30
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.bios' entrypoint: foo. Valid interfaces are ['fake', 'no-bios'].\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports [0.080004s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_error [0.053545s] ... 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-922c6f77-cdad-4ce2-a7e1-0fa23fcc6a90
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail [0.039354s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2a9ff80c-d958-4dd4-821f-52c833db83e6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:21.597648+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports [0.054925s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single [0.045112s] ... 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-8d58e680-78eb-4c65-9d0d-c666a84376fd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis [0.093473s] ... 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-edecae5e-aa86-4daa-b197-d58d74f7b8f2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: 0 is not of type 'string', 'null'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields [0.046735s] ... 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-518785dd-efbd-4f4f-be13-d145a78b5dc8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid [0.097747s] ... 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/206e27ce-807c-4091-8da9-33411f3795fe
Openstack-Request-Id: req-da7560b6-2e3e-499f-bcdb-63c0d0aa5c8c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "206e27ce-807c-4091-8da9-33411f3795fe", "created_at": "2025-05-29T16:56:21.675091+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/206e27ce-807c-4091-8da9-33411f3795fe", "rel": "self"}, {"href": "http://localhost/volume/connectors/206e27ce-807c-4091-8da9-33411f3795fe", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/connectors/206e27ce-807c-4091-8da9-33411f3795fe WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-571621c5-9c11-472a-b612-6e2286eb0e31
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "206e27ce-807c-4091-8da9-33411f3795fe", "created_at": "2025-05-29T16:56:21.675091+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/206e27ce-807c-4091-8da9-33411f3795fe", "rel": "self"}, {"href": "http://localhost/volume/connectors/206e27ce-807c-4091-8da9-33411f3795fe", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version [0.043532s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver [0.071059s] ... 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-6e30a64c-975b-41f1-b424-0bcc83c7ae11
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format [0.043539s] ... 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-5faaa7ce-a82b-4cc0-859c-3ce9e4855d10
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 123 is not of type 'string'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok [0.087334s] ... 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-056f86d2-ed95-40aa-857d-410aa565a946
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:21.740134+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id [0.169106s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_node_invalid_network_interface [0.096604s] ... 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-dbd3ccba-633a-4ace-ac33-de698ebfa575
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.network' entrypoint: foo. Valid interfaces are ['flat', 'neutron', 'noop'].\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id [0.066458s] ... 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-e3de79eb-3762-4a30-ad3d-b381ca15b879
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'connector_id' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false [0.120296s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9096c9b2-43b5-4214-8a5b-906cf2f8a118
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup [0.097532s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_no_mandatory_field_node_uuid [0.082400s] ... 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-6f053d7b-2165-4439-b51c-47c250981441
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'node_uuid' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface [0.089809s] ... 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-d720c258-7e56-4e42-8e09-4b1fd6ad691c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.storage' entrypoint: foo. Valid interfaces are ['fake', 'noop'].\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version [0.046975s] ... 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.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments [0.051666s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path [0.038972s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/detail WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ec587ee0-967b-40b9-8017-bcf13e130655
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for target_uuid: detail\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_fixed_ip_l2 [0.032266s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type [0.073090s] ... 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-a6392821-b081-4463-a1a8-5688248ecd10
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'type' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty [0.044665s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-58bd4f6f-ef3b-43fa-85b8-75e872e2af12
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": []}
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_fixed_ip_l3 [0.050299s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found [0.050013s] ... 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-0af55dcd-28ca-4a5c-b319-0d4cd779dbd5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee [0.156854s] ... 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-2fa85cbd-6a09-4243-83d3-ef7d6b2448e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:22.067829+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-e1787b15-4fec-4f69-bffc-c0918342150e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:22.067829+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode"
    : null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": "project", "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet [0.059166s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok [0.078512s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-884a5b66-1fa0-4181-a9f2-cccfcdd66e29
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "5ab836ee-0f09-4816-b5c6-45a85961ad19", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5ab836ee-0f09-4816-b5c6-45a85961ad19", "rel": "self"}, {"href": "http://localhost/volume/targets/5ab836ee-0f09-4816-b5c6-45a85961ad19", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "538f491f-3901-4eb0-94c5-fe421fc7f6ee", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/538f491f-3901-4eb0-94c5-fe421fc7f6ee", "rel": "self"}, {"href": "http://localhost/volume/targets/538f491f-3901-4eb0-94c5-fe421fc7f6ee", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "de8fb44c-4e0b-4883-b4df-5b7a628b5688", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/de8fb44c-4e0b-4883-b4df-5b7a628b5688", "rel": "self"}, {"href": "http://localhost/volume/targets/de8fb44c-4e0b-4883-b4df-5b7a628b5688", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist [0.082364s] ... 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-8ff747e4-73a3-4fc4-aae3-1e7b69a9a711
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:22.127418+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': 'dd9a4dcd-4f8c-4c8e-827f-bd4b2c8835e6', '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-1f668d79-57da-4b9c-bfca-d437a79a97c5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields [0.052757s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7df9fd8e-b2fe-42a4-bd4a-339027130b38
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "507e7eb3-f99a-4052-95c4-523f8405cd4e", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/507e7eb3-f99a-4052-95c4-523f8405cd4e", "rel": "self"}, {"href": "http://localhost/volume/targets/507e7eb3-f99a-4052-95c4-523f8405cd4e", "rel": "bookmark"}]}, {"uuid": "6c0e3889-b6c3-4f87-aee7-93309bc21fce", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/6c0e3889-b6c3-4f87-aee7-93309bc21fce", "rel": "self"}, {"href": "http://localhost/volume/targets/6c0e3889-b6c3-4f87-aee7-93309bc21fce", "rel": "bookmark"}]}, {"uuid": "9f7104fe-0270-41da-af80-3f762544e477", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/9f7104fe-0270-41da-af80-3f762544e477", "rel": "self"}, {"href": "http://localhost/volume/targets/9f7104fe-0270-41da-af80-3f762544e477", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure [0.062253s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee_old_api_version [0.115678s] ... 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-7953d75d-c94a-493f-a51b-274103972911
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid [0.044358s] ... 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-6801e3b2-dc1e-4245-bb5b-e1bb0aae1906
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"boot_index": 0, "links": [{"href": "http://localhost/v1/volume/targets/cdb9b806-6671-469b-be20-16bf678575ff", "rel": "self"}, {"href": "http://localhost/volume/targets/cdb9b806-6671-469b-be20-16bf678575ff", "rel": "bookmark"}]}, {"boot_index": 1, "links": [{"href": "http://localhost/v1/volume/targets/5bbb5c69-5d89-420f-a0b9-cbcdf2bc1ce3", "rel": "self"}, {"href": "http://localhost/volume/targets/5bbb5c69-5d89-420f-a0b9-cbcdf2bc1ce3", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=5bbb5c69-5d89-420f-a0b9-cbcdf2bc1ce3"}
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing [0.060524s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra [0.103949s] ... 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-a6eba703-4997-41ca-85cc-adfa3caeb0a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:22.228820+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-5dcb3601-6741-40a2-bedc-a37b22e0d597
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:22.228820+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields [0.059311s] ... 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-f6b66def-fc98-43ae-9bfd-96b4ec28c255
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment [0.052612s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping [0.073893s] ... 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-ba8ded9d-184e-4180-9685-474c2c22c762
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:22.314068+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one [0.046368s] ... 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-8cc46bdf-d018-4bae-b34a-a73cda42c9f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:22.326094+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment_no_physnet [0.030633s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid [0.142003s] ... 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-724f8f8a-2885-471e-b0c8-abcbc7742bbb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create node with invalid name ''\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure [0.027001s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_1_values ... SKIPPED: For value storage
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields [0.069599s] ... 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-d39a0db5-deb9-4360-9afa-c9fa26b4a0b1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"boot_index": 0, "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version [0.031366s] ... 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.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing [0.070833s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_2_unauthenticated_user_cannot_get_node [0.051625s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/22ee1c29-3756-4b93-85ae-5cc13e5ad236 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-abb85e79-9eca-4e7e-b95a-47d97bb4a4e8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22ee1c29-3756-4b93-85ae-5cc13e5ad236 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment [0.052638s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_3_project_admin_can_get_node [0.067860s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/47720bca-0ceb-48a1-b665-941e9ecb80c1 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c45fbd58-3b61-4f18-ab98-ebe905c16100
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 47720bca-0ceb-48a1-b665-941e9ecb80c1 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable [0.151640s] ... 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-b6822cb0-cfd2-4722-b152-71398df1da07
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links [0.083155s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/31594892-ba7e-4dff-9611-6663f94acc0e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7bef8bc5-b3cf-4b42-9349-8b14242781ae
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "31594892-ba7e-4dff-9611-6663f94acc0e", "created_at": "2025-05-29T16:56:22.478353+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/31594892-ba7e-4dff-9611-6663f94acc0e", "rel": "self"}, {"href": "http://localhost/volume/targets/31594892-ba7e-4dff-9611-6663f94acc0e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/targets/31594892-ba7e-4dff-9611-6663f94acc0e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8076a7fc-5cf8-4974-93e4-7f831e162779
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "31594892-ba7e-4dff-9611-6663f94acc0e", "created_at": "2025-05-29T16:56:22.478353+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/31594892-ba7e-4dff-9611-6663f94acc0e", "rel": "self"}, {"href": "http://localhost/volume/targets/31594892-ba7e-4dff-9611-6663f94acc0e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /volume/targets/31594892-ba7e-4dff-9611-6663f94acc0e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3cd53236-92c4-4be0-84a3-52f61ce0dccb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "31594892-ba7e-4dff-9611-6663f94acc0e", "created_at": "2025-05-29T16:56:22.478353+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/31594892-ba7e-4dff-9611-6663f94acc0e", "rel": "self"}, {"href": "http://localhost/volume/targets/31594892-ba7e-4dff-9611-6663f94acc0e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_4_project_member_cannot_get_node [0.046436s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/62215bf5-8e05-454e-b179-5cd1a0cf7f12 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-91e43e26-5a34-488d-a2c6-917546d49ad6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 62215bf5-8e05-454e-b179-5cd1a0cf7f12 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many [0.055267s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-77e5aa57-d4ee-49bd-9570-44f80a97421b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "5e790b2c-4ca6-4d19-ba04-126d06b6a6ee", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5e790b2c-4ca6-4d19-ba04-126d06b6a6ee", "rel": "self"}, {"href": "http://localhost/volume/targets/5e790b2c-4ca6-4d19-ba04-126d06b6a6ee", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "03528f76-38ea-4d54-ae66-97ba0c41e72f", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/03528f76-38ea-4d54-ae66-97ba0c41e72f", "rel": "self"}, {"href": "http://localhost/volume/targets/03528f76-38ea-4d54-ae66-97ba0c41e72f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "ed355135-4f07-402b-b45e-7846c7c04170", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/ed355135-4f07-402b-b45e-7846c7c04170", "rel": "self"}, {"href": "http://localhost/volume/targets/ed355135-4f07-402b-b45e-7846c7c04170", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "378dca61-db67-450e-9b23-72f742f105cf", "boot_index": 3, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/378dca61-db67-450e-9b23-72f742f105cf", "rel": "self"}, {"href": "http://localhost/volume/targets/378dca61-db67-450e-9b23-72f742f105cf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "b7969073-e7f1-40ee-a006-b5222112062b", "boot_index": 4, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b7969073-e7f1-40ee-a006-b5222112062b", "rel": "self"}, {"href": "http://localhost/volume/targets/b7969073-e7f1-40ee-a006-b5222112062b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_5_public_api [0.039354s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5c2b3069-869f-4a29-9546-8ae157701128
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one [0.034651s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1f0a08f0-387e-45b4-a06d-d1d039c29a26
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface [0.095089s] ... 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-c1abb909-3181-46e4-9f95-4f3916bb34c5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:22.596663+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-ed6ab32f-078a-4f75-acee-a9c7843888d2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:22.596663+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mo
    de": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version [0.035156s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_6_public_api_v1 [0.054778s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a27d5c69-f676-4014-8f46-97f6ab40ec1f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}], "conductors": [{"href": "http://localhost/v1/conductors/", "rel": "self"}, {"href": "http://localhost/conductors/", "rel": "bookmark"}], "allocations": [{"href": "http://localhost/v1/allocations/", "rel": "self"}, {"href": "http://localhost/allocations/", "rel": "bookmark"}], "events": [{"href": "http://localhost/v1/events/", "rel": "self"}, {"href": "http://localhost/events/", "rel": "bookmark"}], "deploy_templates": [{"href": "http://localhost/v1/deploy_templates/", "rel": "self"}, {"href": "http://localhost/deploy_templates/", "rel": "bookmark"}], "shards": [{"href": "http://localhost/v1/shards/", "rel": "self"}, {"href": "http://localhost/shards/", "rel": "bookmark"}], "runbooks": [{"href": "http://localhost/v1/runbooks/", "rel": "self"}, {"href": "http://localhost/runbooks/", "rel": "bookmark"}], "inspection_rules": [{"href": "http://localhost/v1/inspection_rules/", "rel": "self"}, {"href": "http://localhost/inspection_rules/", "rel": "bookmark"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key [0.049843s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-452f8ca1-8c05-4dd6-bb62-d50b8bbe1186
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "0e9acf94-aeec-40a1-add7-c5b2bdd71998", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0e9acf94-aeec-40a1-add7-c5b2bdd71998", "rel": "self"}, {"href": "http://localhost/volume/targets/0e9acf94-aeec-40a1-add7-c5b2bdd71998", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e88ca3c3-945a-41eb-b838-92aecd35c18f", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/e88ca3c3-945a-41eb-b838-92aecd35c18f", "rel": "self"}, {"href": "http://localhost/volume/targets/e88ca3c3-945a-41eb-b838-92aecd35c18f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "eb78cd66-bf29-4b63-874e-2a3dcbadf833", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/eb78cd66-bf29-4b63-874e-2a3dcbadf833", "rel": "self"}, {"href": "http://localhost/volume/targets/eb78cd66-bf29-4b63-874e-2a3dcbadf833", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_7_public_api_v1_slash [0.049488s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7d5650a3-b408-4743-9e46-4e0e3949fd25
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}], "conductors": [{"href": "http://localhost/v1/conductors/", "rel": "self"}, {"href": "http://localhost/conductors/", "rel": "bookmark"}], "allocations": [{"href": "http://localhost/v1/allocations/", "rel": "self"}, {"href": "http://localhost/allocations/", "rel": "bookmark"}], "events": [{"href": "http://localhost/v1/events/", "rel": "self"}, {"href": "http://localhost/events/", "rel": "bookmark"}], "deploy_templates": [{"href": "http://localhost/v1/deploy_templates/", "rel": "self"}, {"href": "http://localhost/deploy_templates/", "rel": "bookmark"}], "shards": [{"href": "http://localhost/v1/shards/", "rel": "self"}, {"href": "http://localhost/shards/", "rel": "bookmark"}], "runbooks": [{"href": "http://localhost/v1/runbooks/", "rel": "self"}, {"href": "http://localhost/runbooks/", "rel": "bookmark"}], "inspection_rules": [{"href": "http://localhost/v1/inspection_rules/", "rel": "self"}, {"href": "http://localhost/inspection_rules/", "rel": "bookmark"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version [0.102931s] ... 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-6790e63b-0e04-457c-8f6b-4b3e9fafa69b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid [0.052606s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-264f45c2-d624-42a9-ba24-8637fda4a9f8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/volume/targets?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-7592b1b8-8b57-47e3-a770-0595f9e039da
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/volume/targets?sort_key=properties WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b37b0be7-5276-469b-be00-7415f3171359
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_8_public_api_v1_json [0.044227s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1.json WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi [0.060113s] ... 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-e836b3de-4478-4db1-9bf6-b352422ce437
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:22.788188+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_node.TestPost.test_create_node_no_chassis_uuid [0.116828s] ... 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-936f02de-4141-4a1b-ac89-4ac90f1c42d1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:22.832292+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id [0.062220s] ... 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-007cb3b0-68e3-479c-94a1-4fea4230f1ce
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid [0.071307s] ... 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-303313ab-0dd8-4ff2-bc14-3f9193fc1a81
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:22.922251+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.TestPost.test_create_node_no_default_resource_class [0.122058s] ... 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-8c937e08-7b64-4100-a626-571292379f6a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:22.939242+00:00", "updated_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-2ae375d1-2980-47ed-96b3-9b14e97fa4b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:22.939242+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_volume_target.TestPatch.test_add_node_uuid_invalid_type [0.045583s] ... 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-faf43935-ff4e-4f4f-9486-908593b9843b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver [0.067714s] ... 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-fe3debad-c2e0-41db-954d-ea33742fa2ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: 'driver' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config [0.564030s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root [0.073745s] ... 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-77b986b7-6104-49b1-85fe-6b6d8aec8484
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:23.030021+00:00", "updated_at": null, "boot_index": 100, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent [0.063515s] ... 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-7d4ede3e-69e6-4890-888d-34a165611e49
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_9_public_api_v1_xml [0.403514s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1.xml WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field [0.046088s] ... 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-13429e56-efcb-4fde-b14e-14cba830bbea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'boot_index' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi [0.128549s] ... 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-3fb73280-20cd-443b-9818-775a0efa5228
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:23.239973+00:00", "updated_at": "2025-05-29T16:56:23.244224+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-778aef89-749b-473a-a921-58626f724d34
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:23.239973+00:00", "updated_at": "2025-05-29T16:56:23.244224+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"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id [0.051191s] ... 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-09cd5f60-da5a-4b75-9bff-006f74f8c24e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_001_values ... SKIPPED: These are fake reference values for YAML templating
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail [0.050635s] ... 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-3ffcaa95-0b1f-446f-b80f-4a3a20579669
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner [0.378582s] ... 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-d05be619-99d2-4b0d-949a-58a71b4eecd1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:23.382340+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-eb1a8a8c-d81b-4e32-95c7-b59f399c2238
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:23.382340+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": n
    ull, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "cowsay", "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version [0.071498s] ... 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-335cee54-dc78-4014-b8e8-e0ca95429e94
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid [0.080798s] ... 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-7b03d916-67cb-4b5e-806e-fa6d9205600b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_recorded_project_scope [0.120923s] ... 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-d51f4c4e-1cbc-478b-a345-3773094a98de
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:23.588621+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-4a9a4b0f-048d-4c52-87fd-440cbf5692bc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:23.588621+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step"
    : {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "ravensay", "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_002_nodes_post_admin [0.228661s] ... 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-0baadbab-bd4c-46ba-8faa-bd61a16326f1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist [0.137179s] ... 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-34ceeeee-fe59-4863-9c2c-2230f876b187
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume target with boot index '100' for the same node already exists.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope [0.102967s] ... 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-d5213160-7972-4b45-aa61-44a734946df8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:23.691969+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-983e4afa-b2a3-40ef-a15d-86bdf94b2a31
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:23.691969+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed [0.065494s] ... 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-dc6200d1-90cc-498a-a8df-a0b950746717
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('protected' was unexpected)\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member [0.217773s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3e817190-1d3a-4c98-ae3d-a66356af1266
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_004_nodes_post_observer [0.139373s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8a8b8da3-ac52-46be-9172-4d17b7b39624
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name [0.209722s] ... 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-9fbc954f-522f-41b9-80be-cd2894428679
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'name': 'management', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9e60e291-d0d9-4d97-be09-3b9b51542da4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'name': 'states', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-dea256c9-c500-4493-8a0c-a0a307214a0a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'name': 'vendor_passthru', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-08d3bf77-52bb-4f77-8abf-37079023ba47
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"vendor_passthru\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, state
    s, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'name': 'detail', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-aa088554-ef57-467a-b1f1-70f36e7fdcac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"detail\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'name': 'validate', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-4d97ee4c-b4b7-44de-911f-986479d828e6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth [1.015001s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_005_nodes_get_node_admin [0.112277s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7e39fc69-2da2-4774-a261-a7bc43b726e8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:24.049426+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state [0.473702s] ... 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-b7177f1a-dba2-4e56-9c3a-ecb40d333bd9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class [0.116152s] ... 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-3e48d1fd-f742-4745-a907-92afd78dad85
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:24.097928+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-a2f31bfc-d037-4644-a3f2-9954fc5263c9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:24.097928+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.TestPost.test_create_node_resource_class_old_api_version [0.074029s] ... 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-c8325ee9-28bd-4c7d-a747-151f073412a6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi [0.111464s] ... 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-679eb65d-d7f9-44c8-a9fe-c850545d3e36
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:24.167344+00:00", "updated_at": "2025-05-29T16:56:24.170209+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_006_nodes_get_node_member [0.123704s] ... 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-c93c1740-b392-420b-ba0f-df31ef06ea89
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id [0.073164s] ... 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-36c97612-08ce-4acb-9b35-704478993b89
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group [0.146018s] ... 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-f59ddc70-aad7-4ae9-84c8-8bab11a3e398
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:24.317915+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-4a7032c9-2e1e-4953-a4fd-e294fa1598a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:24.317915+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"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_007_nodes_get_node_observer [0.146495s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a9f8e691-7287-4be1-8e7b-3122b9d9d518
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:24.306637+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid [0.109794s] ... 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-d002377d-4b1d-4d68-b4aa-f850f25c5fac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:24.360100+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.TestPost.test_create_node_specify_conductor_group_bad_version [0.070599s] ... 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-d96385e8-7ac7-4137-b905-b193cd0ae112
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_008_nodes_get_node_other_admin [0.120868s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9c02e5da-8173-4684-b8de-1b602129bb78
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:24.412331+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type [0.098372s] ... 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-6d041a05-a45e-4481-a170-8ce098977613
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context [0.476125s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid [0.076462s] ... 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-850b0ad9-6d97-4973-b7bf-359cd4cf101e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_009_nodes_get_admin [0.135156s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8f639559-c217-4ba8-9448-b17721a46b2b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "e4f07809-cee4-4949-b859-5aecd25ac93e", "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_replace_singular [0.061310s] ... 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-fbb8e13b-c48d-4870-8d0d-1ee179d04657
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:24.617761+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_010_nodes_get_other_admin [0.105782s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5ad5ebad-95f3-43c9-87be-87a5791f33a6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "49bc9f74-e378-48bb-8fba-2c4130241be8", "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_byid [0.113746s] ... 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-e09c40ee-ec4e-43de-9ac8-c9a6cad03d8e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:24.685635+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"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version [0.095088s] ... 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_011_nodes_detail_get_admin [0.135887s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-35b896b3-e3b1-4965-b9ab-e720905f6c01
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:24.816882+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-05-29T16:56:24.818103+00:00", "updated_at": "2025-05-29T16:56:24.824125+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": "f30cbd8e-3a00-4f28-9f2f-8b5676333f2f", "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": "f30cbd8e-3a00-4f28-9f2f-8b5676333f2f", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-05-29T16:56:24.846309+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "
    rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found [0.082522s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/2c7ec7d6-c2f6-4f15-9925-518dad8b4a4e WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d93e2e73-5b2a-4e67-b0d5-5d0661a3c2e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 2c7ec7d6-c2f6-4f15-9925-518dad8b4a4e could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_012_nodes_detail_get_member [0.116537s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7800c394-de26-46ab-b81b-21126ac233d3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target [0.138574s] ... 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-b46c6f83-10d0-4e60-afbc-a428a88daee4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c8fbbc09-0d1c-4e8d-81c2-34a5750a7676
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_013_nodes_detail_get_observer [0.109195s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-210110ce-a384-4254-bd1f-4c30e76de4c2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:25.032748+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-05-29T16:56:25.034016+00:00", "updated_at": "2025-05-29T16:56:25.037896+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": "2c954099-cb5d-4a4c-be4b-92ec628411f4", "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": "2c954099-cb5d-4a4c-be4b-92ec628411f4", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-05-29T16:56:25.054545+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "
    rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id [0.093935s] ... 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-fe6943e3-e172-42bd-a00f-dba49820bcd8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:25.136290+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-cda16adb-7b58-4dd0-89ba-b54d8c589bf0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:25.136290+00:00", "updated_at": null, "boot_index": 0, "extra": {"foo": 123}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error [0.066790s] ... 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-11946caf-b5eb-4f8d-8cc5-4b92114f0308
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces [0.833036s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'uuid': '7af76d5a-b407-482d-ab8d-89cf5720f6fc', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/7af76d5a-b407-482d-ab8d-89cf5720f6fc
Openstack-Request-Id: req-b1b91d67-2367-44fd-a1aa-2a74a66023d3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "7af76d5a-b407-482d-ab8d-89cf5720f6fc", "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/7af76d5a-b407-482d-ab8d-89cf5720f6fc", "rel": "self"}, {"href": "http://localhost/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/ports", "rel": "self"}, {"href": "http://localhost/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/states", "rel": "self"}, {"href": "http://localhost/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/volume", "rel": "self"}, {"href": "http://localhost/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/volume", "rel": "bookmark"}]}
GET /v1/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cf75d440-86ff-4f16-8078-d1a1058c7702
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "7af76d5a-b407-482d-ab8d-89cf5720f6fc", "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/7af76d5a-b407-482d-ab8d-89cf5720f6fc", "rel": "self"}, {"href": "http://localhost/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/ports", "rel": "self"}, {"href": "http://localhost/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/states", "rel": "self"}, {"href": "http://localhost/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/volume", "rel": "self"}, {"href": "http://localhost/nodes/7af76d5a-b407-482d-ab8d-89cf5720f6fc/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '0540b146-294d-42d8-87e3-a4fef218ddaf', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/0540b146-294d-42d8-87e3-a4fef218ddaf
Openstack-Request-Id: req-e8fdcfa2-6768-423b-ba10-831de0a94631
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "0540b146-294d-42d8-87e3-a4fef218ddaf", "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/0540b146-294d-42d8-87e3-a4fef218ddaf", "rel": "self"}, {"href": "http://localhost/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/ports", "rel": "self"}, {"href": "http://localhost/nodes/0540b146-294d-42d8-87e3-
    a4fef218ddaf/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/states", "rel": "self"}, {"href": "http://localhost/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/volume", "rel": "self"}, {"href": "http://localhost/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/volume", "rel": "bookmark"}]}
GET /v1/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b0570eb1-302d-466b-b7d3-2cd2406d2922
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "0540b146-294d-42d8-87e3-a4fef218ddaf", "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/0540b146-294d-42d8-87e3-a4fef218ddaf", "rel": "self"}, {"href": "http://localhost/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/ports", "rel": "self"}, {"href": "http://localhost/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/states", "rel": "self"}, {"href": "http://localhost/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/volume", "rel": "self"}, {"href": "http://localhost/nodes/0540b146-294d-42d8-87e3-a4fef218ddaf/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': 'ae0eb22a-3fcb-473e-b3e9-f272c8135902', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/ae0eb22a-3fcb-473e-b3e9-f272c8135902
Openstack-Request-Id: req-1034bd58-9b0a-4409-a20c-55acc7bc3999
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openst
    ack-Ironic-Api-Version: 1.40
{"uuid": "ae0eb22a-3fcb-473e-b3e9-f272c8135902", "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/ae0eb22a-3fcb-473e-b3e9-f272c8135902", "rel": "self"}, {"href": "http://localhost/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/ports", "rel": "self"}, {"href": "http://localhost/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/states", "rel": "self"}, {"href": "http://localhost/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/volume", "rel": "self"}, {"href": "http://localhost/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/volume", "rel": "bookmark"}]}
GET /v1/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-db84e642-810e-424e-b0c1-8e31cfa8998d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "ae0eb22a-3fcb-473e-b3e9-f272c8135902", "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/ae0eb22a-3fcb-473e-b3e9-f272c8135902", "rel": "self"}, {"href": "http://localhost/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/
    nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/ports", "rel": "self"}, {"href": "http://localhost/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/states", "rel": "self"}, {"href": "http://localhost/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/volume", "rel": "self"}, {"href": "http://localhost/nodes/ae0eb22a-3fcb-473e-b3e9-f272c8135902/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '20696fc8-acdc-454e-8d66-4c284f1f5408', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/20696fc8-acdc-454e-8d66-4c284f1f5408
Openstack-Request-Id: req-230292de-c2bf-4d72-a815-b8121f9c5cad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "20696fc8-acdc-454e-8d66-4c284f1f5408", "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/20696fc8-acdc-454e-8d66-4c284f1f5408", "rel": "self"}, {"href": "http://localhost/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/ports", "rel": "self"}, {"href": "http://localhost/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/states", "rel": "self"}, {"href": "http://localhost/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/volume", "rel": "self"}, {"href": "http://localhost/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/volume", "rel": "bookmark"}]}
GET /v1/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-26bec57a-
    819c-4dfc-aa3b-1f555c80db0e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "20696fc8-acdc-454e-8d66-4c284f1f5408", "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/20696fc8-acdc-454e-8d66-4c284f1f5408", "rel": "self"}, {"href": "http://localhost/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/ports", "rel": "self"}, {"href": "http://localhost/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/states", "rel": "self"}, {"href": "http://localhost/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/volume", "rel": "self"}, {"href": "http://localhost/nodes/20696fc8-acdc-454e-8d66-4c284f1f5408/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7
Openstack-Request-Id: req-a440842a-4fbe-4de8-8573-79e6d12e1f00
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7", "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/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7", "rel": "self"}, {"href": "http://localhost/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/ports", "rel": "self"}, {"href": "http://localhost/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/states", "rel": "self"}, {"href": "http://localhost/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/volume", "rel": "self"}, {"href": "http://localhost/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/volume", "rel": "bookmark"}]}
GET /v1/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fdbd2e84-50ec-4359-8111-dd33f71b4bab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7", "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/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7", "rel": "self"}, {"href": "http://localhost/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/ports", "rel": "self"}, {"href": "http://localhost/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/states", "rel": "self"}, {"href": "http://localhost/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/volume", "rel": "self"}, {"href": "http://localhost/nodes/4ab2683b-0ac3-4ac9-a90a-ee5ca6da7aa7/volume", "rel": "bookmark"}]}
POST /v1/nodes WIT
    H {'uuid': '781d168e-fe95-4b77-b7b4-c02c338b360e', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/781d168e-fe95-4b77-b7b4-c02c338b360e
Openstack-Request-Id: req-6f605f90-724d-48a5-9170-a059e0a03716
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "781d168e-fe95-4b77-b7b4-c02c338b360e", "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/781d168e-fe95-4b77-b7b4-c02c338b360e", "rel": "self"}, {"href": "http://localhost/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/ports", "rel": "self"}, {"href": "http://localhost/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/states", "rel": "self"}, {"href": "http://localhost/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/volume", "rel": "self"}, {"href": "http://localhost/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/volume", "rel": "bookmark"}]}
GET /v1/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-454cee22-cf43-4c38-ad5f-b976a7fc4fc1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "781d168e-fe95-4b77-b7b4-c02c338b360e", "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/781d168e-fe95-4b77-b7b4-c02c338b360e", "rel": "self"}, {"href": "http://localhost/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/ports", "rel": "self"}, {"href": "http://localhost/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/states", "rel": "self"}, {"href": "http://localhost/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/volume", "rel": "self"}, {"href": "http://localhost/nodes/781d168e-fe95-4b77-b7b4-c02c338b360e/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '033e5870-cf09-4ad5-85de-23349ee64a90', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/033e5870-cf09-4ad5-85de-23349ee64a90
Openstack-Request-Id: req-655b64bb-85ac-4306-84bd-4c0d4742f73b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "033e5870-cf09-4ad5-85de-23349ee64a90", "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/033e5870-cf09-4ad5-85de-23349ee64a90", "rel": "self"}, {"href": "http://localhost/nodes/033e5870-cf09-4ad5-85de-23349ee64a90", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/ports", "rel": "self"}, {"href": "http://localhost/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/ports",
     "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/states", "rel": "self"}, {"href": "http://localhost/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/volume", "rel": "self"}, {"href": "http://localhost/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/volume", "rel": "bookmark"}]}
GET /v1/nodes/033e5870-cf09-4ad5-85de-23349ee64a90 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-41d6dcab-bb49-452a-879b-2604c7179965
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "033e5870-cf09-4ad5-85de-23349ee64a90", "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/033e5870-cf09-4ad5-85de-23349ee64a90", "rel": "self"}, {"href": "http://localhost/nodes/033e5870-cf09-4ad5-85de-23349ee64a90", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/ports", "rel": "self"}, {"href": "http://localhost/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/states", "rel": "self"}, {"href": "http://localhost/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/volume", "rel": "self"}, {"href": "http://localhost/nodes/033e5870-cf09-4ad5-85de-23349ee64a90/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '0e769456-b5be-4afe-9630-93d4317b42ab', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/0e769456-b5be-4afe-9630-93d4317b42ab
Openstack-Request-Id: req-40513cf6-092a-4047-b8a0-5dc79e9c59e6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Versi
    on: 1.40
{"uuid": "0e769456-b5be-4afe-9630-93d4317b42ab", "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/0e769456-b5be-4afe-9630-93d4317b42ab", "rel": "self"}, {"href": "http://localhost/nodes/0e769456-b5be-4afe-9630-93d4317b42ab", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/ports", "rel": "self"}, {"href": "http://localhost/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/states", "rel": "self"}, {"href": "http://localhost/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/volume", "rel": "self"}, {"href": "http://localhost/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/volume", "rel": "bookmark"}]}
GET /v1/nodes/0e769456-b5be-4afe-9630-93d4317b42ab WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3cc48372-baf5-46d3-b087-023a2b0a8b42
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "0e769456-b5be-4afe-9630-93d4317b42ab", "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/0e769456-b5be-4afe-9630-93d4317b42ab", "rel": "self"}, {"href": "http://localhost/nodes/0e769456-b5be-4afe-9630-93d4317b42ab", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/0e769456-b5be-
    4afe-9630-93d4317b42ab/ports", "rel": "self"}, {"href": "http://localhost/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/states", "rel": "self"}, {"href": "http://localhost/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/volume", "rel": "self"}, {"href": "http://localhost/nodes/0e769456-b5be-4afe-9630-93d4317b42ab/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '75be138c-9256-4714-b889-fa9cd3991ee3', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/75be138c-9256-4714-b889-fa9cd3991ee3
Openstack-Request-Id: req-d95049d5-1e37-4fb0-86ed-5104eac8a1ed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "75be138c-9256-4714-b889-fa9cd3991ee3", "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/75be138c-9256-4714-b889-fa9cd3991ee3", "rel": "self"}, {"href": "http://localhost/nodes/75be138c-9256-4714-b889-fa9cd3991ee3", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/ports", "rel": "self"}, {"href": "http://localhost/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/states", "rel": "self"}, {"href": "http://localhost/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/volume", "rel": "self"}, {"href": "http://localhost/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/volume", "rel": "bookmark"}]}
GET /v1/nodes/75be138c-9256-4714-b889-fa9cd3991ee3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e9df811f-bd35-4f3f-a228-e9643
    385c844
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "75be138c-9256-4714-b889-fa9cd3991ee3", "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/75be138c-9256-4714-b889-fa9cd3991ee3", "rel": "self"}, {"href": "http://localhost/nodes/75be138c-9256-4714-b889-fa9cd3991ee3", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/ports", "rel": "self"}, {"href": "http://localhost/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/states", "rel": "self"}, {"href": "http://localhost/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/volume", "rel": "self"}, {"href": "http://localhost/nodes/75be138c-9256-4714-b889-fa9cd3991ee3/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': 'a297543b-025b-4e2d-91f9-d3ca67ba76ec', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/a297543b-025b-4e2d-91f9-d3ca67ba76ec
Openstack-Request-Id: req-6a373eb4-8cd8-4754-ba36-87bbadc4dba0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "a297543b-025b-4e2d-91f9-d3ca67ba76ec", "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/a297543b-025b-4e2d-91f9-d3ca67ba76ec", "rel": "self"}, {"href": "http://localhost/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/ports", "rel": "self"}, {"href": "http://localhost/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/states", "rel": "self"}, {"href": "http://localhost/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/volume", "rel": "self"}, {"href": "http://localhost/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/volume", "rel": "bookmark"}]}
GET /v1/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4583f06a-7c1f-45e3-9312-f47e39fd2145
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "a297543b-025b-4e2d-91f9-d3ca67ba76ec", "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/a297543b-025b-4e2d-91f9-d3ca67ba76ec", "rel": "self"}, {"href": "http://localhost/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/ports", "rel": "self"}, {"href": "http://localhost/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/states", "rel": "self"}, {"href": "http://localhost/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/volume", "rel": "self"}, {"href": "http://localhost/nodes/a297543b-025b-4e2d-91f9-d3ca67ba76ec/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': 'f7450e83-4d2
    f-4b84-bceb-65cbbf972f32', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/f7450e83-4d2f-4b84-bceb-65cbbf972f32
Openstack-Request-Id: req-c376b07f-288d-47e9-8423-403d96a6826b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "f7450e83-4d2f-4b84-bceb-65cbbf972f32", "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/f7450e83-4d2f-4b84-bceb-65cbbf972f32", "rel": "self"}, {"href": "http://localhost/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/ports", "rel": "self"}, {"href": "http://localhost/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/states", "rel": "self"}, {"href": "http://localhost/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/volume", "rel": "self"}, {"href": "http://localhost/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/volume", "rel": "bookmark"}]}
GET /v1/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dcd5d2b0-e711-46db-9b33-199a55dbbf1d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "f7450e83-4d2f-4b84-bceb-65cbbf972f32", "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/f7450e83-4d2f-4b84-bceb-65cbbf972f32", "rel": "self"}, {"href": "http://localhost/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/ports", "rel": "self"}, {"href": "http://localhost/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/states", "rel": "self"}, {"href": "http://localhost/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/volume", "rel": "self"}, {"href": "http://localhost/nodes/f7450e83-4d2f-4b84-bceb-65cbbf972f32/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '89da7a5e-31c4-430d-bd58-412a3e5bea05', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/89da7a5e-31c4-430d-bd58-412a3e5bea05
Openstack-Request-Id: req-71334a9d-56a4-4578-97fc-49564f122893
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "89da7a5e-31c4-430d-bd58-412a3e5bea05", "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/89da7a5e-31c4-430d-bd58-412a3e5bea05", "rel": "self"}, {"href": "http://localhost/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/ports", "rel": "self"}, {"href": "http://localhost/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/ports", "rel": "bookmark"}], 
    "states": [{"href": "http://localhost/v1/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/states", "rel": "self"}, {"href": "http://localhost/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/volume", "rel": "self"}, {"href": "http://localhost/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/volume", "rel": "bookmark"}]}
GET /v1/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-49b2024e-8b65-497b-a3de-41e462ceffb6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "89da7a5e-31c4-430d-bd58-412a3e5bea05", "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/89da7a5e-31c4-430d-bd58-412a3e5bea05", "rel": "self"}, {"href": "http://localhost/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/ports", "rel": "self"}, {"href": "http://localhost/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/states", "rel": "self"}, {"href": "http://localhost/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/volume", "rel": "self"}, {"href": "http://localhost/nodes/89da7a5e-31c4-430d-bd58-412a3e5bea05/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin [0.202637s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c79e9410-7540-4471-be73-77cc2da874a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:25.189873+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid [0.136353s] ... 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/7c35538d-cdd7-4ee9-a950-97c37dc0b35d
Openstack-Request-Id: req-5e5c1759-99bc-4014-86d1-4f7a44fe3f70
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "7c35538d-cdd7-4ee9-a950-97c37dc0b35d", "created_at": "2025-05-29T16:56:25.338739+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/7c35538d-cdd7-4ee9-a950-97c37dc0b35d", "rel": "self"}, {"href": "http://localhost/volume/targets/7c35538d-cdd7-4ee9-a950-97c37dc0b35d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/targets/7c35538d-cdd7-4ee9-a950-97c37dc0b35d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4a22325e-8a4f-4052-9fa6-66f36dad62d2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "7c35538d-cdd7-4ee9-a950-97c37dc0b35d", "created_at": "2025-05-29T16:56:25.338739+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/7c35538d-cdd7-4ee9-a950-97c37dc0b35d", "rel": "self"}, {"href": "http://localhost/volume/targets/7c35538d-cdd7-4ee9-a950-97c37dc0b35d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_015_nodes_node_ident_get_member [0.084694s] ... 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-3e121098-e06f-4c6a-97ee-dc960febd3ab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token [0.883026s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version [0.063765s] ... 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.044801s] ... 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-fb9e1491-7961-4574-bcad-7f70d7aa2a5a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 123 is not of type 'string'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_016_nodes_node_ident_get_observer [0.109916s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f98b57a4-7199-4abc-be60-4b6f93d657d4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:25.432964+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid [0.087757s] ... 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-ef952633-b554-4dc7-b85d-6d4601e970c6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'node_uuid' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version [0.309073s] ... 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-d23df36b-07a1-4576-9d20-af919b9f8eaf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'console_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-5900c12d-a644-4317-a49e-c9b8771c19ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'deploy_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-9bf6ba0c-72ad-4fe9-9474-656ec05d0ef2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'inspect_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-5e47ad5c-828b-4c87-a877-44574d1f01c8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'manageme
    nt_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-96f8ada2-b6b3-42eb-b7a0-e741e9553b72
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'power_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-b7a29801-acf2-48e7-85dc-c30d3b44380d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'raid_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-1485f77a-7611-46a2-9574-6a697a9de5c1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'vendor_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-857cd27e-4033-4677-9ffd-71a74ceb1a33
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkInterfaceMixin.test_get_network_names_and_uuids [0.166993s] ... ok
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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.111497s] ... 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-a96fdebb-6eaf-4104-a29e-32844a6c62df
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port [0.020754s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type [0.062450s] ... 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-3372d7ff-20b9-4cb5-be48-e62947020ca0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'volume_type' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client [0.030617s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value [0.052079s] ... 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-3dedf559-d8ad-4bdd-8632-bdf6817d8254
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'boot_index' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_exception [0.039797s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_018_nodes_node_ident_patch_member [0.097958s] ... 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-b4912f3e-fd32-4d17-b334-cb3f14f30b1c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits [0.144195s] ... 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-3e2c1d2d-7f47-4f91-bfea-db9a987d84d3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('traits' was unexpected)\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address [0.034114s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found [0.047918s] ... 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-a2ee19e3-f7f5-4f6d-a509-b128b835dfc4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed [0.031439s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed [0.021737s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra [0.064830s] ... 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-243ef442-11bf-4eb6-88f7-62bacea2be5c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:25.783325+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-46128f49-a971-44ba-8740-20f837e7e462
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:25.783325+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"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.100794s] ... 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-73c4a826-8064-4945-b883-6b8e6b04db9c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding [0.032737s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception [0.025424s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping [0.067564s] ... 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-253e28d8-406a-4f3d-bf35-36c3d890027d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:25.865126+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding [0.032179s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag [0.023847s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version [0.177749s] ... 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-690bd5be-49a0-4d1c-983b-18fe5b3276e4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_auth_needed [0.026222s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.121080s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-fc037687-3edd-407c-9155-ae55c1d6768d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_follows_links [0.044017s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_if_not_found [0.034126s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_021_nodes_node_ident_delete_member [0.076299s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-38cd4e06-4cd7-44d2-9d45-95eb6cb94527
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info [0.120223s] ... 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-51e5f36c-492e-4830-acad-068ac853f960
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:26.009843+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-80a8f235-4714-45eb-a968-e0b51100d0f1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:26.009843+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"}]}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_temp_failure [0.020370s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_bad_header [0.028496s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.080550s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-397fc00c-882a-46da-baa0-de498514e849
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_basic_auth [0.048091s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_basic_auth_no_username [0.031538s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_002_owner_admin_cannot_post_nodes [0.157040s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9a924a3f-661a-4c5f-9c3c-d40a9532c901
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_bearer_auth [0.021882s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra [0.144894s] ... 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-64c75c00-3299-46d4-8bc9-0f08e41219d3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:26.122929+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-52a8bcfa-1f03-4ec7-b3f1-37d9f1f53383
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:26.122929+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"}]}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_fallback_to_service_config [0.025845s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_023_nodes_validate_get_admin [0.091755s] ... 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-1b6f37f6-f6d0-4321-85c7-55c71d28b811
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_no_header [0.026186s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_noop [0.019813s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest [0.035803s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_024_nodes_validate_get_member [0.110476s] ... 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-a990ab70-d2e9-48e5-809b-e0ffc6670488
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_401 [0.036980s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_403 [0.030674s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_404 [0.029173s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_500 [0.027198s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_025_nodes_validate_get_observer [0.109583s] ... 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-2f6c59df-6778-45f0-8062-82ea94e22ebe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties [0.238372s] ... 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-8caaf55c-7af1-49c3-b43a-3f9ae6f3bf97
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:26.355966+00:00", "updated_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-c9bb1945-1755-4664-ad62-87a2238bb1e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:26.355966+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_003_owner_admin_can_post_nodes [0.275904s] ... 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-3ecdb933-85f2-40b9-9991-3b1f8963966e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_check [0.044712s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_access_denied [0.021635s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_not_authorized [0.028084s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_026_nodes_maintenance_put_admin [0.086704s] ... 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-e03b679d-2c57-4625-bcf2-e13eb50c918e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_not_found [0.031390s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_temporaryfailure [0.024501s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_with_tag [0.046255s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest [0.035904s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_027_nodes_maintenance_put_member [0.150845s] ... 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-5b6ea886-f43c-4a57-8516-8557f603003c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid [0.228415s] ... 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-aedb014f-c1c0-4d68-ae4b-093ae2036825
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:26.614211+00:00", "updated_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-b592a5a2-045b-4556-8368-44472b595106
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:26.614211+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_auth_required [0.025521s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_checksum_verifies [0.023527s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_004_service_nodes_cannot_post_nodes [0.265784s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-02e8e004-8e37-480a-8608-f153de9e423c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_access_denied [0.041991s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer [0.097755s] ... 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-1a788860-c336-4483-9918-a1788f94375b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_not_found [0.041788s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_temporary_failure [0.025183s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test__image_to_url [0.029844s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.077007s] ... 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-edebd41e-c482-48b8-ab09-9e42978deebe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test__image_to_url_adds_oci [0.037862s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_conductor_group [0.237621s] ... 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-f8fd196c-44b3-4235-b39d-ba3cb38e37f6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:26.836639+00:00", "updated_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-7b4e2e17-e1d9-4a46-a703-693087516c0a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:26.836639+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "conductor_group": "magic", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes
    /1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_client_init_make_session [0.032941s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_030_nodes_maintenance_delete_member [0.094089s] ... 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-9d507c10-8b5d-4843-a38e-7c07d293d75b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_get_blob_url [0.039972s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_005_service_nodes_can_post_nodes [0.242221s] ... 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-6ace8e5c-5ce5-4502-9558-3560a4c38e88
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url [0.019885s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url_with_digest [0.017433s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url_with_tag [0.021326s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.096443s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b25f8a15-ff08-49a7-ba76-fa436a086f28
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path [0.032872s] ... ok
{3} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path [0.032493s] ... ok
{3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image [0.035397s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.086365s] ... 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-9f7e9d56-c386-4458-932e-c24468bef1b4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class [0.230531s] ... 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-ab082f9e-d874-4d14-a638-6d8b77e35032
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:27.066240+00:00", "updated_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-2036ba9f-a3e5-42ae-a5ca-af1e5eb29df8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:56:27.066240+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.common.test_qemu_img.ConvertImageTestCase.test_convert_image_flags [0.041322s] ... ok
{3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_just_fails [0.042346s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.079715s] ... 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-6a48363d-6ffb-4d67-b390-fd94a0420bfe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_006_owner_manager_cannot_post_nodes [0.269772s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-013492a1-4903-4cbd-84d3-4c47e5536c41
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries [0.055808s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field [0.136773s] ... 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-13743e72-9a96-4dff-bb86-529cdf6792e3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('reservation' was unexpected)\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.075063s] ... 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-feeaef6d-ba58-4925-8276-e50b5e8b4d00
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_alternate_error [0.042380s] ... ok
{3} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_and_fails [0.069535s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource [0.107120s] ... 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-748e357f-dd35-40d4-a1b5-24e4847ee200
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_command_not_found [0.040924s] ... ok
{3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale [0.019207s] ... ok
{3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables [0.027297s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_007_lessee_admin_cannot_post_nodes [0.223313s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3f3f65b4-a1b5-44f5-aead-4e63e8ea7a2b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables [0.037575s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource [0.117635s] ... 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-ea8953ff-eedd-4453-859c-72a76901304f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_default [0.039031s] ... ok
{3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_false [0.024211s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id [0.064915s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_true [0.029672s] ... ok
{3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_all [0.067280s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.399707s] ... 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-0e29131b-77b2-43ad-a71f-f2de34c1895f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource [0.122523s] ... 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-7571c23c-71a2-4ca9-a8ca-af445b04dbe2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_name [0.051257s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_008_lessee_admin_can_post_nodes [0.247419s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-75ec5b8a-34df-48bf-8dbb-56ee1f4e5e3e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.093877s] ... 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-9ca8dcf3-4f71-4e9a-ace6-91afe2db9123
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id [0.080106s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_none [0.089522s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource [0.069457s] ... 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-6c997162-ef62-42d5-840f-c6887274ebbc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.082603s] ... 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-130a6e49-dbf6-47d6-94cb-a91e81779e06
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_empty_device_attribute [0.054914s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async [0.045450s] ... 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-d0e20ffc-215c-4afe-b772-ecb14c7caed0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints [0.039341s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name [0.047863s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/node-109/vendor_passthru/test WITH {'foo': 'bar'} GOT Response: 202 Accepted
Openstack-Request-Id: req-296b1069-6aea-417d-b830-9ec007df1f08
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.087575s] ... 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-56e2d682-ca3b-45ad-adc0-408d988e2eed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_009_lessee_manager_cannot_post_nodes [0.233034s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f59d5190-1d28-42e0-8e3b-2cdefd615a9c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints2 [0.054631s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete [0.036658s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test GOT Response: 202 Accepted
Openstack-Request-Id: req-90114456-6f43-43d9-b0ad-bf7142f9ac8f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get [0.059594s] ... 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-6ba179ff-b01f-4a59-a2c2-47921b0a61e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
"foo"
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.116185s] ... 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-fbadc800-008f-485a-9b87-18728d3d4d80
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_010_lessee_manager_can_post_nodes [0.144318s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8829b065-f771-4015-ae15-069fe22c4398
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.105474s] ... 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-7da5a7f1-a864-4384-a7b4-94055f4c1b58
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods [0.125340s] ... 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-4e9b89f5-323e-46bc-8f26-fb567c6f55d3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"foo": "bar"}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-94b9cf6e-b6d8-434c-bdda-c278fa3956d7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"foo": "bar"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method [0.080857s] ... 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-311cc119-3833-4fea-a386-9dd8093298f7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support test (disabled or not implemented).\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_011_third_party_admin_cannot_post_nodes [0.166029s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-5eb21fc7-679a-4d8f-be9d-bf1d2418c47f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints3 [0.301005s] ... ok
{3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_device_found [0.028627s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put [0.061095s] ... 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-ad2ecdb0-b8b1-4121-8a5e-e8a7cfa7f330
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.141287s] ... 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-8e3f5986-5beb-4da6-9252-2c9830278566
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_operators [0.037098s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync [0.038267s] ... 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-c8f1fea7-8678-4d62-acd1-ed15e0531e04
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"cat": "meow"}
{3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_one_hint [0.038826s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method [0.039110s] ... 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-5cd9c038-2094-40c2-8ddf-7ac6bc305b14
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: method\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_012_third_party_admin_can_post_nodes [0.129423s] ... 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-167be65d-0803-4fc7-8aca-7363e4c34a11
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational [0.024124s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.121975s] ... 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-c6d8681c-f0d1-4cba-87a3-15bca2a121b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational_convert_devices_bool [0.039816s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test__append_operator_to_hints [0.043100s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_empty_value [0.023722s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port [0.132524s] ... 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-65f04f1c-76dc-457f-ac1f-4546caee47c2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-494c9b44-7cc7-4698-8e07-0c07a1bae323
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.092739s] ... 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-ae082ca9-bc73-46d1-9d1d-0d6a3910e290
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_integer [0.033538s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_013_owner_member_cannot_post_nodes [0.167403s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-00e06979-99b5-4dc6-82cc-06ff6467cfe1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values [0.031060s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist [0.085712s] ... 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-d7ee1a73-ab73-49cf-a368-17b242956364
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address AA:AA:AA:11:22:33 already exists.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values_space [0.027169s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_no_operator [0.021394s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_single_value [0.021879s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_044_nodes_states_get_admin [0.132708s] ... 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-0aa9f7dd-17c8-4446-afb7-119446a733cf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_empty_value [0.023711s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_014_owner_reader_cannot_post_reader [0.130639s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8988a8c0-e28a-4636-8f53-b14ecc397aea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_in [0.020063s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_no_space [0.042340s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_space [0.030114s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_no_space [0.022044s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized [0.213144s] ... 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-e79329f2-b155-471c-8e3a-e2409f609c60
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:28.735527+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-4a5638c1-c318-4a2d-a2d6-08fa96ceba8d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:28.735527+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"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_045_nodes_states_get_member [0.176968s] ... 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-b92e0820-ce20-4afc-b2b5-6361d9b2d53c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_space [0.046190s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_or [0.027133s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_015_owner_admin_can_get_node [0.232977s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-169afcd3-83a3-42e5-a0d6-9115ab3b0fe6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "7bda3730-7f09-45bb-b5b2-b8daa14000ad", "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.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_rotational [0.042416s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_size [0.045641s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_046_nodes_states_get_observer [0.157432s] ... 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-af12a660-fc3a-4abc-9dde-71aa8e0fa861
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id [0.182394s] ... 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-8d33f767-699d-47db-b6ec-a62395d7999e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:28.934688+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-11365c98-f6a8-4a90-9a74-59ef8881b7ea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:28.934688+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or [0.045770s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or_invalid [0.021732s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_by_path [0.020300s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_hctl [0.018698s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin [0.111405s] ... 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-9f046c3d-25f2-48af-b0ca-ee105d341294
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error [0.109040s] ... 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-2cc15a28-f5ab-400c-b8bd-a57f2023d1e4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_model [0.053764s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_name [0.032201s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_rotational [0.019337s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_serial [0.027904s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_048_nodes_states_power_put_member [0.133105s] ... 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-029b0f60-2b16-4b6a-9ef5-98d56c905763
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_016_owner_manager_can_get_node [0.336422s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-361bb622-3046-4751-bb2e-4c6af165ac99
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "757ba551-af4a-41f8-8e2f-9f821e80bce3", "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.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_size [0.025404s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid [0.180115s] ... 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/2b2a7326-ce7b-4014-97db-ebeb05dc9411
Openstack-Request-Id: req-a820b639-131d-43bf-9d05-d8cdcb2ec270
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "2b2a7326-ce7b-4014-97db-ebeb05dc9411", "created_at": "2025-05-29T16:56:29.242935+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/2b2a7326-ce7b-4014-97db-ebeb05dc9411", "rel": "self"}, {"href": "http://localhost/ports/2b2a7326-ce7b-4014-97db-ebeb05dc9411", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
GET /v1/ports/2b2a7326-ce7b-4014-97db-ebeb05dc9411 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a5aa0ff0-2bd3-415d-8c18-a8b8b34a7e74
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "2b2a7326-ce7b-4014-97db-ebeb05dc9411", "created_at": "2025-05-29T16:56:29.242935+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/2b2a7326-ce7b-4014-97db-ebeb05dc9411", "rel": "self"}, {"href": "http://localhost/ports/2b2a7326-ce7b-4014-97db-ebeb05dc9411", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_vendor [0.032595s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn [0.023900s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_vendor_extension [0.030248s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_with_extension [0.021553s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_049_nodes_states_power_put_observer [0.135069s] ... 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-ec3f0d0b-2f98-4c74-85d1-0a365fbe7d92
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_no_hints [0.023711s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_non_existent_hint [0.040677s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_017_owner_member_can_get_node [0.209108s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-96d8d199-ce52-4b51-9e7f-ba9d83521f11
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "98c4feb0-15e3-415b-9488-0a6b412795a5", "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.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_compare_operator_name [0.032777s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.123152s] ... 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-12afcc55-d63f-4104-95f7-4e2563ee36fe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_or_space [0.024120s] ... ok
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_with_operators [0.022307s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format [0.261703s] ... 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-4d9053f6-0e94-4583-b578-de5201fbcf96
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_without_operators [0.035810s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.089041s] ... 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-1f39b383-a35b-45c3-93b8-a77072b2a9b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format [0.055349s] ... 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-cbe93a57-04ba-4bee-ab75-c710b33a8739
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok [0.035388s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable [0.026153s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok [0.023380s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.081046s] ... 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-9bb56671-36bf-4d13-81d4-c5c8c2799407
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises [0.034081s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_empty_string [0.096341s] ... 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-ad64f144-a432-410e-a198-f4c841c909f7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir [0.025214s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_018_owner_reader_can_get_node [0.263008s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7811c498-9c22-4a11-a4e7-50344bdb8740
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "71f2dbaf-5ae0-49db-bff4-1bca3a2d2cd8", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.078511s] ... 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-87d0f412-c37d-43cd-9e6b-e3116e761b8a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text [0.079552s] ... 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-bc9ccf78-fc45-4965-a307-4ee6ef1baab9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok [0.103398s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.074673s] ... 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-8ce3c305-2d56-455c-a244-0cdfd5ffec1e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long [0.072458s] ... 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-e66b87d1-e56d-4c1a-b844-10c63a0ddfbd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_019_lessee_admin_can_get_node [0.134360s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e56c4b91-735b-47de-9ac8-e755695cac98
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "4547da95-49d8-4245-82d1-4bfddb74a96c", "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.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in [0.081079s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.110841s] ... 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-89e64f01-0ad0-48bb-8515-d33765aa3c71
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_020_lessee_manager_can_get_node [0.098979s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dc2c2c01-7206-40f5-b8d2-b488dcde4f3e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "fd53adf5-2577-4fa9-bc90-bd13ab4e2828", "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.common.test_utils.TempFilesTestCase.test_is_memory_insufficient [0.067117s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_056_nodes_states_provision_put_admin [0.087438s] ... 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-1ec2b186-22c3-489b-8afc-cfffbf390238
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys [0.185025s] ... 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-782ff916-5691-44b2-a63c-0b9fa9dbfd6e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:30.016818+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet1/15", "switch_info": "value3"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good [0.068341s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_021_lessee_member_can_get_node [0.094011s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b300dddb-f0dd-463b-858f-cac2eb4a2b6b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "6420292c-b49f-440b-bc83-49de9dea963c", "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.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_recovers [0.047549s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory [0.080008s] ... 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-7fb4743e-598a-44a0-9c00-9d572480585c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_id': '0a:1b:2c:3d:4e:5f', 'switch_info': 'fooswitch'} is not valid under any of the given schemas. Possible root cause: 'port_id' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_057_nodes_states_provision_put_member [0.090967s] ... 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-7bd2ba2a-075f-49bb-8a92-d7bc7f21a68e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_022_lessee_reader_can_get_node [0.089733s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-366974e4-f39d-4ecf-a58d-c6dd446e1607
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "e0095c9c-146c-42b3-8600-e757d6aa9ea3", "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.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only [0.060441s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir [0.044126s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked [0.027916s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional [0.119720s] ... 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-d574fee4-b7d0-4d89-915b-0663f9e414ef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:30.232141+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet1/15"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_023_third_party_admin_cannot_get_node [0.119577s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-838d2ace-6d9a-43e5-b28b-585535befd69
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": []}
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree [0.030497s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_058_nodes_states_provision_put_observer [0.146589s] ... 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-23bedc42-51e7-4157-95ef-7c95eca6982e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_utils.UnlinkTestCase.test_unlink [0.024441s] ... ok
{3} ironic.tests.unit.common.test_utils.UnlinkTestCase.test_unlink_ENOENT [0.024171s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac [0.093794s] ... 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-4ba3424f-83aa-4bc2-a622-853847d1ee30
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address or OpenFlow datapath ID but received zz:zz:zz:zz:zz:zz.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_vnc.VncTestCase.test_get_console [0.028863s] ... ok
{3} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_authorize [0.042359s] ... ok
{3} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_unauthorize [0.038122s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_024_owner_reader_can_get_their_node [0.190481s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d03b1458-32d2-4b77-82dc-f30c404d6a59
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-05-29T16:56:30.373244+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": "lolcats", "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_059_nodes_states_raid_put_admin [0.159814s] ... 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-a22a5896-119e-4dd0-8e63-62664aec1ab4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version [0.133899s] ... 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-9b3560eb-98ee-441e-af9b-4de21c401ea5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:30.462597+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_validate [0.052577s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_060_nodes_states_raid_put_member [0.083813s] ... 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-31c788a6-9465-482f-850f-feac101bb205
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_025_owner_reader_cannot_get_other_node [0.092837s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/d088261f-2454-4100-8c23-aab88761292c WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d288903d-2897-4ce4-aa54-120fac95296a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d088261f-2454-4100-8c23-aab88761292c could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_validate_expired [0.056404s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_missing_address_fails [0.093069s] ... 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-64a4bdfe-66c8-49df-95d0-abdd508fd384
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_vnc.VncTestCase.test_token_valid_until [0.027907s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address [0.064480s] ... 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-729a4d83-c9c2-4305-ab8c-f686221cdfcd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting [0.061492s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer [0.107755s] ... 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-87fcd04d-8f55-49ca-8f48-59491f0aca53
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_026_lessee_reader_can_get_their_node [0.118245s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-38a5d11a-de49-46cf-b167-d6227e362aaa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-29T16:56:30.619436+00:00", "updated_at": "2025-05-29T16:56:30.630752+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": "f0442644-da1b-4c7c-a28c-00784bafa226", "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": "f0442644-da1b-4c7c-a28c-00784bafa226", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default [0.046584s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid [0.068836s] ... 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-3f529801-b054-4f86-be8a-a2d44f42d0e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} is not valid under any of the given schemas. Possible root cause: 'node_ident' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default_limit [0.050319s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_062_nodes_states_console_get_admin [0.107885s] ... 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-d8e8b4b9-37b4-4a31-aa2f-63aa83a5e80e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_027_lessee_reader_cant_get_other_node [0.107494s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/5af980f3-3aaf-45f2-bedc-5f425749009c WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4f3a514d-ae0f-45e1-bc05-daae559fd7b8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 5af980f3-3aaf-45f2-bedc-5f425749009c could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found [0.098745s] ... 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-14545b95-f826-462e-9dd9-7a9b0b8410aa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting [0.080260s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_063_nodes_states_console_get_member [0.083896s] ... 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-6f87fcb9-92fe-45ad-879b-39b5838b52dd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_028_third_party_admin_cant_get_node [0.103249s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1137dc49-5a26-4665-8b15-ca0a7e70b456 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-0040468f-5942-4133-9049-5b95bd5f38bf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1137dc49-5a26-4665-8b15-ca0a7e70b456 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting [0.049222s] ... ok
{3} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled [0.054402s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_064_nodes_states_console_get_observer [0.099128s] ... 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-2d20da9b-1d0a-458b-9560-3917141ebafc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_029_owner_reader_can_get_restricted_fields [0.075239s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-682a2d6a-3004-4e36-9965-e2a681ce0367
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-05-29T16:56:30.913726+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": "lolcats", "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup [0.218171s] ... 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-e02589e4-7750-4afa-8760-53367cd308d7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:31.022778+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_065_nodes_states_console_put_admin [0.104597s] ... 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-79deecd2-6aca-4d6c-b14d-d23c48664fdd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_030_lessee_reader_cannot_get_restricted_fields [0.102055s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-81d90d41-fceb-4450-97a3-dca3e9b0b3c5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-29T16:56:31.010006+00:00", "updated_at": "2025-05-29T16:56:31.017501+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": "fa4a57e3-9105-4673-81bf-b6827d7738e6", "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": "fa4a57e3-9105-4673-81bf-b6827d7738e6", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_066_nodes_states_console_put_member [0.087310s] ... 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-38b8a588-d9a6-458c-b3eb-7359a0112000
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports [0.116237s] ... 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-1d25e0d5-2efb-4dd0-b131-fb193bca1914
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:31.132492+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_031_owner_reader_can_get_detail [0.121092s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d4440049-9bc4-4d07-9967-437d78ff9d45
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-05-29T16:56:31.104772+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": "lolcats", "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-29T16:56:31.114453+00:00", "updated_at": "2025-05-29T16:56:31.122064+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": "2eafe1be-e100-49ce-bfad-382f5ef62d95", "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": "2eafe1be-e100-49ce-bfad-382f5ef62d95", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_067_nodes_states_console_put_observer [0.091180s] ... 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-8ed190be-0b43-4d96-8096-25156e5564ce
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports [0.110986s] ... 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-2aa4c07c-42e7-435d-b305-792a7b70e33e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:31.247895+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive [0.335120s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_admin [0.074391s] ... 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-0673cb7b-67b8-4b95-ba4a-e6585d7af353
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_032_lessee_reader_can_get_detail [0.142259s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cfc79fbc-b0f0-4bcd-86d6-e4991141b09b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-29T16:56:31.249665+00:00", "updated_at": "2025-05-29T16:56:31.264770+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": "bfb6bcda-f330-404f-9ff0-a4db9817a48a", "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": "bfb6bcda-f330-404f-9ff0-a4db9817a48a", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup [0.086806s] ... 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-654af1ab-d6eb-4747-b5ec-5b2ddc188b6f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:31.341182+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}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_member [0.088734s] ... 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-90767f13-a984-4550-8d33-8a5e613218ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn [0.135960s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports [0.158643s] ... 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-e530cfec-f20a-4a7b-abc3-df18bf6ea1dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that portgroup as the port's 'pxe_enabled' field was set to True.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_033_third_party_admin_cannot_get_detail [0.184100s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5a6ffbcf-e876-4f2c-b159-5a734785aa73
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": []}
{3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error [0.136548s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports [0.124100s] ... 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-3a8f5301-93a8-4732-b3ac-4ee0bcb93c97
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:31.614909+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.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag [0.096747s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_070_nodes_vendor_passthru_methods_get_observer [0.307299s] ... 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-78a76bf2-6d31-4ca1-aea1-3f80df16c2d0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool [0.089159s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_034_owner_admin_can_patch_node_extra [0.282523s] ... 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-93d2a2ac-a1b2-4edb-a125-d6c2e27dddf0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup [0.180677s] ... 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-bb7210c2-36f3-4b2c-a262-fca4aeae7b19
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:31.796102+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_071_nodes_vendor_passthru_get_admin [0.148690s] ... 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-fa928ca0-06d1-4473-b14e-90686d94235b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes [0.069652s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '20fddf59-556c-4358-a358-12ef1c6c3f4a', '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-9a04da6d-9383-4f37-9348-3aa19b8ee40a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 20fddf59-556c-4358-a358-12ef1c6c3f4a could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_with_mdns [0.160346s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_072_nodes_vendor_passthru_get_member [0.087582s] ... 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-3d00c7f4-a74d-4ae9-971e-a0f90f8f2319
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_035_owner_manager_can_patch_node_extra [0.207857s] ... 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-f3fa5495-a9a1-42a3-9b94-6c4d9ecd49ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start [0.082283s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version [0.150444s] ... 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-c73e6b23-7579-4cd9-aa0f-bb50b367ef5b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_073_nodes_vendor_passthru_get_observer [0.160724s] ... 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-f314d3d8-6f77-48c2-b8b2-41e4ce081be8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_036_owner_member_can_patch_node_extra [0.173619s] ... 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-ba9924b0-63ee-4f97-8bfa-eeec8d35922d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_admin [0.098041s] ... 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-7d9dcf33-c276-4954-af9e-4e08d9579c85
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks [0.214072s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found [0.181830s] ... 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-b62b98cb-d692-461b-a5f5-751e500a0894
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_037_owner_reader_cannot_patch_node_extra [0.109461s] ... 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-a7678e01-9763-4566-94c9-893c7e67212a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_075_nodes_vendor_passthru_post_member [0.128387s] ... 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-1312a65a-1dd4-4cf5-824e-6ad0cb4d5897
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version [0.128996s] ... 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-9bf2c825-cbe4-4e91-8b02-5250d5b39e03
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_dbapi_single_call [0.143201s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key [0.075159s] ... 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-df6a31ea-a4cf-4263-8ad1-8c3737cb2b8a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_id': 'value1', 'port_id': 'Ethernet1/15', 'switch_foo': 'value3'} is not valid under any of the given schemas. Possible root cause: Additional properties are not allowed ('switch_foo' was unexpected)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_038_lessee_admin_can_patch_node_extra [0.146907s] ... 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-d7d1b431-87b1-4f07-bee7-e1b1f0887b48
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register [0.066272s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_076_nodes_vendor_passthru_post_observer [0.117569s] ... 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-1e469bbe-5958-494f-b506-0f85423f4d95
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types [0.075679s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_077_nodes_vendor_passthru_put_admin [0.124192s] ... 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-7a235a45-1249-42af-923c-d35cc11e7287
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra [0.153739s] ... 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-fbb68929-6558-409c-9df1-0439bceef2c0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:32.543607+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-7bf9748a-bafc-4ded-aa4a-091a28bdcd34
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:32.543607+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"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver [0.074257s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (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.api.test_acl.TestRBACProjectScoped.test_project_scoped_039_lessee_manager_can_patch_node_extra [0.180684s] ... 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-7a37a71c-ed1f-4793-a70c-beed56f694c5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_member [0.087442s] ... 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-dbc119c1-4aa4-453b-8628-3f655ae53a5b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup [0.090248s] ... 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-726a044b-afe0-41ad-9a09-628b77976c86
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:32.669071+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports [0.100698s] ... 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-c7e33ed1-a345-446c-b18d-87ce2d6a06e3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:32.762989+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_put_observer [0.115832s] ... 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-86154feb-d4b4-4cfd-bb1d-41fd485caac3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_040_lessee_member_can_patch_node_extra [0.166134s] ... 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-3459955e-bcd0-435f-bc28-0a213884e530
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup [0.119137s] ... 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-1faecdeb-30fa-4e7f-b176-f434ec4f45bf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:32.887857+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_041_lessee_reader_cannot_patch_node_extra [0.103227s] ... 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-b9c21603-a0da-4c2e-9312-868a8feda21f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports [0.106513s] ... 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-856c107b-fff8-48b0-9845-4fd6c72ff48a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that portgroup as the port's 'pxe_enabled' field was set to True.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_042_third_party_admin_cannot_patch_node_extra [0.096708s] ... 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-0b49afa9-0bc3-4bf9-b77e-146afcda2f7e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_admin [0.222716s] ... 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-847ed335-55ea-45a5-af0a-dfe0e060e41d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck [0.447701s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/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.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports [0.104954s] ... 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-3244fe5c-06bc-4950-8272-789f56a792aa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:33.100833+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_043_owner_admin_can_change_drivers [0.139595s] ... 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-0be7daf6-ec54-4bf5-ae19-286570b0c161
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_081_nodes_vendor_passthru_delete_member [0.152610s] ... 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-11821f68-4ae5-4521-a3ea-15becffbaef5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor [0.108120s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_both_node_ident_and_node_uuid [0.096674s] ... 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-277571ef-ef8f-43d0-b112-585437b3cc1b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'node_ident': 'test-node-name'} is valid under each of {'required': ['node_uuid']}, {'required': ['node_ident']}\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_vendor_passthru_delete_observer [0.091914s] ... 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-57be402b-2763-4af6-8f10-b9e18a04e3fd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter [0.052341s] ... 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-a3c19184-8b2c-4694-84a8-1c1ff4906ac8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: 52-54-00-cf-2d-31\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field [0.067036s] ... 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-aeeed2b3-81d4-4e89-b252-31eab2dab724
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_admin [0.086325s] ... 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-85c1aa86-11a4-437c-9eb9-d026756dd10e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"traits": ["trait1"]}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names [0.203278s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_registers_driver_specific_tasks [0.057180s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_084_nodes_traits_get_member [0.108530s] ... 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-aa4ad033-b719-4753-9ce1-f50209988c3e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic [0.132271s] ... 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-f68d95d6-7b72-4012-9343-2ec84e76b53e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:33.447591+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": true, "local_link_connection": {"hostname": "host1", "port_id": "rep0-0"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_044_owner_manager_can_change_drivers [0.326998s] ... 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-0cd24b4f-8c32-43ea-a285-38ad5c55921b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc [0.081296s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value [0.098564s] ... 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-6134dc9f-1f69-413e-b943-68f73a84da84
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:33.548158+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_085_nodes_traits_get_observer [0.124063s] ... 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-a8730479-4986-402a-84ec-476de3b0effc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"traits": ["trait1"]}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname [0.086232s] ... 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-c35e7f3c-7385-495a-a631-463d3e22d9df
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Smart NIC port must have port_id and hostname in local_link_connection\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc_port [0.130414s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_086_nodes_traits_put_admin [0.083935s] ... 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-e8723290-0c92-4f9b-924b-12f76e19ef09
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_045_owner_member_can_patch_all_the_things [0.218384s] ... 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-5e1211d7-3e38-41af-98c7-2e8b510d90f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id [0.070547s] ... 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-b5904db6-0540-4fc6-86a8-8edf0eec8de3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'hostname': 'host'} is not valid under any of the given schemas. Possible root cause: 'port_id' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns [0.103640s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_member [0.088654s] ... 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-6e1536d8-96f5-4693-8659-127612c31c18
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version [0.079189s] ... 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-6314107e-87f6-48e3-916c-77d3069a7cad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_046_owner_member_can_change_lessee [0.136807s] ... 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-152b0fbf-75ca-4222-8b4e-495c3b0e3ed0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version [0.078527s] ... 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-172500e2-3a5e-4391-a83e-ed24e8583792
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug [0.118024s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_088_nodes_traits_put_observer [0.122326s] ... 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-5f95b1f6-7c50-4fe2-8bf5-33452d165b13
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc [0.076216s] ... 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-00418738-c3ea-4587-b6da-7eee940b12e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:33.943938+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"network_type": "unmanaged"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_089_nodes_traits_delete_admin [0.092018s] ... 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-8a4c5301-7d42-4a05-a521-75ad19114e49
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_no_enabled_interfaces [0.105340s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc_old_api_version [0.082227s] ... 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-4d1e44c7-fe81-4d53-a04e-706ed223c829
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_without_jsonrpc_port_pined_version [0.072048s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_090_nodes_traits_delete_member [0.086704s] ... 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-4c2d19b6-d923-4310-ba7d-6a494aa0b527
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_delete_observer [0.091716s] ... 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-c69cfae8-aaee-413a-b51d-5fcae8e146e3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_clears_conductor_locks [0.121092s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_047_lessee_admin_cannot_change_lessee [0.361437s] ... 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-2d344a5a-0ebc-4650-bc32-a3cc3eb6ad93
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_ident [0.214419s] ... 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-1bdc3647-a299-411d-9df3-9bb7047efe82
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:34.192587+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-3dbfb8c1-0572-4a85-bb0f-5fd4a49148e9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:34.192587+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_092_nodes_traits_trait_put_admin [0.083263s] ... 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-cfea8119-79b4-42b6-8864-e6232328c80a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_048_lessee_manager_cannot_change_lessee [0.098963s] ... 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-1b1c99c7-d6d4-43b2-8b74-5b5516640624
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_ident_unsupported_api_version [0.110353s] ... 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-79f67145-ab60-4158-8e66-4e0cdb47887e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_093_nodes_traits_trait_put_member [0.122406s] ... 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-b8b062a1-248e-4edd-80f6-098679c54d8d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_049_lessee_admin_cannot_change_owner [0.102221s] ... 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-bd7a15a9-252d-4611-8c1e-a3e806c1913d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_050_lessee_manager_cannot_change_owner [0.096217s] ... 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-e5a90db1-5ac6-41ca-868c-1d1d52d3a41a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_put_observer [0.126108s] ... 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-d501c075-f7da-4ff5-a78d-7c5bb68b084c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_095_nodes_traits_trait_delete_admin [0.099702s] ... 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-473af1f7-5fa2-41f0-8c80-ed078c86721d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor [0.443455s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_stop_uninitialized_conductor [0.087722s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_051_owner_admin_can_change_lessee [0.263951s] ... 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-edc267e3-8d48-461c-b16b-d7389bf572b7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_096_nodes_traits_trait_delete_member [0.171451s] ... 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-ae3b22c6-a066-4566-904d-0bd90195deda
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_097_nodes_traits_trait_delete_observer [0.078657s] ... 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-e4eda722-313c-4ccb-9867-7183725894ab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor [0.160624s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_uuid [0.524937s] ... 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-2fd27fd5-7d03-481b-817e-4c5616faaf8c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:34.850996+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-5c1f0f23-4b8b-4910-ac56-ceeb7f192b0d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:34.850996+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.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool [0.093686s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_098_nodes_vifs_get_admin [0.137964s] ... 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-f7a9001b-7f8c-4b37-a8b6-af759fea5343
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network [0.155960s] ... 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-79523b56-a9e5-4150-843e-d5a70c5b3522
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:34.996715+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet1", "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_099_nodes_vifs_get_member [0.104453s] ... 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-bce8bdc7-6aff-4d9b-9d0e-f87cf6c16837
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value [0.127043s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_052_owner_manager_can_change_lessee [0.397264s] ... 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-84392c03-bb45-4b91-87b9-722beebe0229
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version [0.142424s] ... 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-2b4b5afc-7f1e-4d3e-81cd-45043fe1d981
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_100_nodes_vifs_get_observer [0.089381s] ... 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-c674f45f-7052-41fb-89d9-f0edc33a12a4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail [0.144916s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestPost.test_create_port_with_physical_network_upgrade [0.084979s] ... 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-a911ae09-d8ca-421b-80f2-ed2a7932c840
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_053_owner_admin_cannot_change_owner [0.137019s] ... 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-b71c061e-7898-4361-b823-5cdee51647b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version [0.059873s] ... 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-ddebbd42-89b4-409f-8bc4-c0a491deecfb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning [0.109860s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestPost.test_create_port_without_node_or_node_uuid [0.049972s] ... 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-c6d423d7-c9a2-4005-9830-7847f04a7e9f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} is not valid under any of the given schemas. Possible root cause: 'node_ident' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_101_nodes_vifs_post_admin [0.203687s] ... 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-53003aa7-fa55-4e26-8498-ad83e4186342
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping [0.072420s] ... 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-e2519f36-e993-40aa-bb76-c9164f12e46c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:35.448831+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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop [0.076778s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_054_owner_manager_cannot_change_owner [0.208477s] ... 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-36057381-3480-47ba-afe2-3472e0833cd5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_102_nodes_vifs_post_member [0.119704s] ... 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-17f95d26-17ba-4436-b8c7-c1c3abcc1553
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post [0.081631s] ... 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-32ffaa7b-9ec8-446d-a626-c2457e684d24
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress [0.066317s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/52:54:00:cf:2d:31 GOT Response: 400 Bad Request
Content-Type: application/json
{"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 52:54:00:cf:2d:31\"}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps [0.163480s] ... ok
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.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid [0.087904s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 204 No Content
Openstack-Request-Id: req-3b952d58-84b2-40d4-817e-9db0ff02c659
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname [0.051270s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/pg.1 GOT Response: 204 No Content
Openstack-Request-Id: req-3bf3516d-3669-40fe-b56a-2a3f84ea8ff3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_fast_track [0.126377s] ... ok
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.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed [0.038005s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/blah GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8c8301d8-a351-4e59-85d1-0d1acb9c56b6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json [0.045571s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/pg.1.json GOT Response: 204 No Content
Openstack-Request-Id: req-cf6e7399-b2d2-4d17-88e8-88d907bd44de
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_last_step_noop_fast_track [0.080972s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_055_lessee_member_can_set_protected [0.377460s] ... 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-ca0dbb14-ac50-462d-a6d0-5ce7f0a70f59
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version [0.061663s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_103_nodes_vifs_post_observer [0.380565s] ... 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-11328981-ad14-4834-8fbe-4c2ad7c21391
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value [0.123834s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_portgroup.TestDelete.test_delete_portgroup_node_locked [0.075726s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-f3d88e2b-0e85-4571-8456-1b201ae9ea16
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_admin [0.081368s] ... 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-7b7c6465-ec97-4735-b590-173c9c46626e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_bmc_address_as_none [0.061405s] ... 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-fcdc6da0-2270-4fab-be65-1f2b94fc210f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "f7d2a455-4fd8-41ed-a9c0-1996562b65ba"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_member [0.084781s] ... 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-2617d85a-f87d-4700-b3bf-bc477bf9600a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail [0.124107s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_056_lessee_member_cannot_patch_instance_info [0.194260s] ... 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-c6ef0e0e-c19a-492e-bda9-55b588a4403a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_106_nodes_vifs_node_vif_ident_delete_observer [0.077971s] ... 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-421b40d1-4142-4682-ba48-92d5cc206cb9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_inspector_compatibility [0.110685s] ... 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-0cbc81dc-73a1-4ce0-9bca-f4f8310fafd0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "79818bdf-adcd-40d7-8f6d-3330968f0860"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_057_lessee_member_cannot_patch_driver_info [0.100062s] ... 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-135dcf5d-4b30-4007-ab0d-9d0a813c45fd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:driver_info\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning [0.118769s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_107_nodes_management_indicators_get_admin [0.076509s] ... 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-075a59af-93e6-45f2-8cac-33940a2f8167
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_invalid_schema [0.072525s] ... 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-07d9d020-a599-4c1a-885f-161c4aa288d0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for data: 'interfaces' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop [0.064134s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_058_lessee_member_cannot_patch_properties [0.092283s] ... 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-37d8b839-3eb4-4a7e-8d27-9bc828125ab0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:properties\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_new_api [0.056964s] ... 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-b8a855c3-b8cc-4451-bcb7-66d43d59268c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "ca42631d-8654-4d86-aed3-bf52ea155e80", "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/ca42631d-8654-4d86-aed3-bf52ea155e80", "rel": "self"}, {"href": "http://localhost/nodes/ca42631d-8654-4d86-aed3-bf52ea155e80", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "noop", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": null, "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_108_nodes_management_indicators_get_member [0.100347s] ... 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-84ea9572-67a0-4fd3-af07-2ef84cfa4eb0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_no_usable_lookup_data [0.061019s] ... 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-0189e8e9-84ee-4240-8389-0076db3924dd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No lookup information provided\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps [0.122847s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_059_lessee_member_cannot_patch_network_data [0.110244s] ... 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-6d84ee5a-edda-4dc4-bee8-af0a40d2d559
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:network_data\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_old_api_version [0.040097s] ... 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-9bed9012-efbc-4706-9f79-8f92b73d2ec5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"API version 1.84 or newer is required\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_109_nodes_management_indicators_get_observer [0.118181s] ... 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-f6d005f0-f80f-45f0-a79a-bb0f67c3c375
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_bad_invalid_agent_status [0.061945s] ... 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-dd63402e-d7c2-45a1-a998-a4bd4dc9f1ed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_retired_last_step_change_tgt_state [0.087805s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_060_lessee_member_cannot_patch_name [0.111371s] ... 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-c4c13b8f-3d30-4592-9c61-d87120bc75ae
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:name\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url [0.060469s] ... 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-8f415b8a-59ec-4c2e-8d34-4c8b076a4671
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_110_nodes_management_indicators_component_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated [0.088711s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.TestHeartbeat.test_heartbeat_rejects_file_url [0.044607s] ... 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-2f5809d6-d068-4bac-8662-4780550bc209
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"An issue with the supplied \\\"callback_url\\\" has been detected.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_061_lessee_member_cannot_patch_retired [0.085970s] ... 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-3d33de29-dabe-412d-a8e3-ca9a212de378
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:retired\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found [0.040890s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/3e110bbf-b1c6-4e2f-a243-160e36e9df52 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-7ab83f96-62d8-4d96-85ad-c4c30c1ecdf3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 3e110bbf-b1c6-4e2f-a243-160e36e9df52 could not be found.\", \"debuginfo\": null}"}
{0} 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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios [0.079573s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.TestHeartbeat.test_ok [0.063849s] ... 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-4c3a9e09-a436-48a9-83d5-4b3645531ab7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{0} ironic.tests.unit.api.test_acl.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.
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_status_and_status [0.038035s] ... 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-6b315593-c233-41f8-8e28-943ab53719a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception [0.075373s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.TestHeartbeat.test_ok_agent_token [0.049275s] ... 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-6cc2f94e-4f76-43cb-b019-b2dd50aaad8e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_113_portgroups_get_admin [0.090763s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4b301cf9-5f04-4ed9-80e1-d553c19f5cb6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported [0.081775s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.TestHeartbeat.test_ok_agent_verify_ca [0.043102s] ... 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-b735bec1-1459-44a9-8ec6-ba01aa20e62c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_062_owner_admin_can_patch_node_instance_info [0.268739s] ... 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-06d58246-7a61-4967-926d-e51b75662a9f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version [0.051749s] ... 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-555bf107-b63d-4422-9f60-c728ec226d35
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_114_portgroups_get_member [0.076365s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-896a684a-c2f7-46d6-b363-cf35d91586e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled [0.096838s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.TestHeartbeat.test_ok_by_name [0.067286s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/test.1 WITH {'callback_url': 'https://url', 'agent_token': 'token'} GOT Response: 202 Accepted
Openstack-Request-Id: req-ef1f397e-27f2-474b-9e55-ade50dc0048a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_for_anaconda [0.044461s] ... 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-e16eb499-532c-4e28-a105-7f9fc4a93e43
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_063_owner_manager_can_patch_node_instance_info [0.148068s] ... 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-a7b40b7d-538b-4591-ba7a-685273caf5bc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json [0.046871s] ... 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-838a14d5-88b9-4fd1-84b7-2419ec912023
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled [0.152364s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_115_portgroups_get_observer [0.179949s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ffe8af48-7b80-4db1-85c3-ca36bbeb844b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_verify_ca_error [0.064492s] ... 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-7bc82801-ba54-45a1-bd9b-d069b4154cb0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.67
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_verify_ca\\\" not recognised in this version\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_064_owner_member_can_patch_node_instance_info [0.121314s] ... 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-c159ae0c-d399-48f0-be5e-ead79ff88809
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error [0.047176s] ... 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-76c04270-d2ab-4a73-95e3-7c48afdb1bec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.35
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_agent_status_error [0.055640s] ... 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-9f94ee43-0ac1-43c1-9e8f-b97699c08c4f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.71
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fields \\\"agent_status\\\" and \\\"agent_status_message\\\" not recognised.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_065_owner_reader_can_patch_node_instance_info [0.106251s] ... 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-cab0f85c-e5ca-4a38-9390-aa97cacffe8d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_admin [0.171734s] ... 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/86fffe4c-8006-4f4a-96be-b7a45c7f353f
Openstack-Request-Id: req-8db750c6-5a92-499b-a950-95811224e6a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "86fffe4c-8006-4f4a-96be-b7a45c7f353f", "created_at": "2025-05-29T16:56:37.240100+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/86fffe4c-8006-4f4a-96be-b7a45c7f353f", "rel": "self"}, {"href": "http://localhost/portgroups/86fffe4c-8006-4f4a-96be-b7a45c7f353f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/86fffe4c-8006-4f4a-96be-b7a45c7f353f/ports", "rel": "self"}, {"href": "http://localhost/portgroups/86fffe4c-8006-4f4a-96be-b7a45c7f353f/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version [0.074327s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/692daced-13a7-474e-8cb1-81b94dde0aa3 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-be11a40b-2edd-493a-8f18-7d5cc6b7dcf6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled [0.224090s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup [0.119682s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=9bbf2418-62b0-4ebc-a9f5-f1cdef9bd736 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-109af79e-8024-4f02-bdba-109be3e25da1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "9bbf2418-62b0-4ebc-a9f5-f1cdef9bd736", "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/9bbf2418-62b0-4ebc-a9f5-f1cdef9bd736", "rel": "self"}, {"href": "http://localhost/nodes/9bbf2418-62b0-4ebc-a9f5-f1cdef9bd736", "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=9bbf2418-62b0-4ebc-a9f5-f1cdef9bd736 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b2eb3a55-fb4d-4929-8e36-8c304d5cf018
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "9bbf2418-62b0-4ebc-a9f5-f1cdef9bd736", "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/9bbf2418-62b0-4ebc-a9f5-f1cdef9bd736", "rel": "self"}, {"href": "http://localhost/nodes/9bbf2418-62b0-4ebc-a9f5-f1cdef9bd736", "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=9bbf2418-62b0-4ebc-a9f5-f1cdef9bd736 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-756076b6-25cf-4517-88e0-9a7f82bdfc0f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "9bbf2418-62b0-4ebc-a9f5-f1cdef9bd736", "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/9bbf2418-62b0-4ebc-a9f5-f1cdef9bd736", "rel": "self"}, {"href": "http://localho
    st/nodes/9bbf2418-62b0-4ebc-a9f5-f1cdef9bd736", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled [0.103373s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_066_lessee_admin_can_patch_node_instance_info [0.190218s] ... 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-c0cc664a-1bbb-4e9b-8470-e6b5b2705419
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_117_portgroups_post_member [0.187706s] ... 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-b3e8d832-3290-41d6-9eca-73035093998b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_addresses [0.067422s] ... 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-fe9d1c49-a336-4034-8c87-88304f787d18
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "4d7a6ebc-326e-47c2-a64e-6c41a33f81c3", "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/4d7a6ebc-326e-47c2-a64e-6c41a33f81c3", "rel": "self"}, {"href": "http://localhost/nodes/4d7a6ebc-326e-47c2-a64e-6c41a33f81c3", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "some-value", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled [0.110600s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_post_observer [0.111317s] ... 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-dc88c4ea-18da-43a3-b804-5e6c36fb179d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_067_lessee_manager_can_patch_node_instance_info [0.147258s] ... 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-b3586c98-4056-4d80-ae85-45e1fc9c35ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_only_uuid [0.123991s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?node_uuid=fb15ab7c-5afa-4de5-8b7b-87765691e6fb WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5d10abf7-b1bb-4557-bf9c-36a5567ac0fa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "fb15ab7c-5afa-4de5-8b7b-87765691e6fb", "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/fb15ab7c-5afa-4de5-8b7b-87765691e6fb", "rel": "self"}, {"href": "http://localhost/nodes/fb15ab7c-5afa-4de5-8b7b-87765691e6fb", "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.test_acl.TestRBACProjectScoped.test_project_scoped_068_lessee_member_cannot_patch_node_instance_info [0.104254s] ... 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-2322391e-36cc-4071-b029-e9d440e602f8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_uuid [0.106566s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=604ac496-304a-40ff-bcdd-a81574394357 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eedd6534-6f6d-464b-9acf-07ceb2dd2cc4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "604ac496-304a-40ff-bcdd-a81574394357", "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/604ac496-304a-40ff-bcdd-a81574394357", "rel": "self"}, {"href": "http://localhost/nodes/604ac496-304a-40ff-bcdd-a81574394357", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "this_thing_on?", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled [0.167933s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_119_portgroups_detail_get_admin [0.168001s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7b5484ef-24d1-4810-86de-14c27d28b720
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:37.660610+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_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address [0.094341s] ... 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-8bf67098-df5d-44ff-8ff2-1bb3708343e1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "a5ad84ba-1098-452b-9e4e-8f39069dc99b", "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/a5ad84ba-1098-452b-9e4e-8f39069dc99b", "rel": "self"}, {"href": "http://localhost/nodes/a5ad84ba-1098-452b-9e4e-8f39069dc99b", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "123456", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_069_lessee_reader_can_patch_node_instance_info [0.117403s] ... 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-15eed154-5fd1-47e5-882a-821fca9ff613
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none [0.104052s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_member [0.093607s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-29121b03-0491-434c-a181-fd4abdc2dae8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_invalid_input_addresses [0.043175s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=meow1 WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-11540e95-c223-4816-96a2-3a033af644f7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_invalid_input_node_uuid [0.040177s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?node_uuid=meow1 WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-70b856e0-e116-4c93-8fb5-36ab8195f8e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: meow1\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_detail_get_observer [0.089800s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1d874749-cd0c-4cd4-87e4-c66166ab25d7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:37.864785+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_070_third_party_admin_cannot_patch_node_instance_info [0.105949s] ... 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-57060089-3b06-4bab-a7ec-84080ffd37ef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail [0.128218s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.TestLookupScopedRBAC.test_no_restrict_lookup [0.071716s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=b8de2f2c-bd6d-465e-ae5a-635e236fec23 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1e67872b-7582-4a04-9500-9a2cb57ddefb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"node": {"uuid": "b8de2f2c-bd6d-465e-ae5a-635e236fec23", "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/b8de2f2c-bd6d-465e-ae5a-635e236fec23", "rel": "self"}, {"href": "http://localhost/nodes/b8de2f2c-bd6d-465e-ae5a-635e236fec23", "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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_122_portgroups_portgroup_ident_get_admin [0.118562s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7908d57f-0cf6-4c16-aa33-ae07db500dd3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:37.962214+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_071_owner_admin_cannot_delete_nodes [0.148374s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c7dd7d29-b72b-47cf-8819-e49e83f5a91e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_not_found [0.122396s] ... 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-02181c56-dad8-483a-9bc9-c7a94b5791f0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail [0.150142s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_123_portgroups_portgroup_ident_get_member [0.087742s] ... 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-ba24b142-b1e5-4cdb-b1fd-c370e5b115b5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_nothing_provided [0.100289s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6f95f99d-bfff-4f7b-b879-eaf27bb68934
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail [0.127110s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_get_observer [0.105218s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-343ca5cb-2dfc-406c-85ec-f17cc4aa8099
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:38.193147+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_ramdisk.TestLookupScopedRBAC.test_old_api_version [0.054922s] ... 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-0392099d-4dba-4b7e-97c6-8412dcfba057
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_072_owner_admin_can_delete_nodes [0.192600s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-71bd8c79-217e-4d87-a240-6013142723d8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait [0.065724s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.TestLookupScopedRBAC.test_restrict_lookup [0.058110s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=4603d9d3-d4cd-4e5a-b858-73e069ab213a WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-88f7c760-2b35-41a5-9d2b-149d7ab9aeda
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_name [0.046745s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/CUSTOM_DT1 GOT Response: 204 No Content
Openstack-Request-Id: req-abd3fa97-4506-45e1-882a-6340b23c6c86
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_125_portgroups_portgroup_ident_patch_admin [0.149159s] ... 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-210ee856-0028-4d2d-99d3-8862618bc3c6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_name_non_existent [0.045581s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/blah GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f0a0d2e1-93b7-46b9-805f-c0348d17bdee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Runbook blah could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail [0.150167s] ... ok
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.TestRBACModelBeforeScopes.test_rbac_legacy_126_portgroups_portgroup_ident_patch_member [0.078550s] ... 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-4448c947-27be-45ee-aca9-1277cdb75e81
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_073_service_cannot_delete_owner_admin_nodes [0.219620s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8ca8f439-4c92-4a69-914e-dad57bfec95d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance [0.069397s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_127_portgroups_portgroup_ident_patch_observer [0.091810s] ... 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-f7bf4b41-dd85-4450-ac5c-ba41870de7db
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual [0.107366s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_128_portgroups_portgroup_ident_delete_admin [0.089600s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-b9264ade-bf26-4325-b4eb-00833aa53253
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_074_service_can_delete_nodes_in_own_project [0.210966s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e951ded5-51ff-4366-8001-0b80f1e97458
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_129_portgroups_portgroup_ident_delete_member [0.084525s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8e42c217-83e9-4b8c-97e4-20c87a1ad103
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios [0.133325s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbook.TestDelete.test_delete_by_uuid [0.375967s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/74954253-bbd5-4ec5-bf58-91445608250e GOT Response: 204 No Content
Openstack-Request-Id: req-faeb65ab-cdbd-480e-b70f-b41b33d300e2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{2} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_invalid_api_version [0.037627s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/761b4251-319e-486d-be28-56f046a03d98 GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow runbooks\"}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_075_owner_manager_cannot_delete_nodes [0.123640s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-bce3af48-8b91-4a14-999b-c4db27ea4258
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_portgroups_portgroup_ident_delete_observer [0.081447s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d0565ee0-57fc-4590-8d29-78e5c09e25c5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_old_api_version [0.046615s] ... 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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception [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(
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found [0.027772s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_076_lessee_admin_cannot_delete_nodes [0.093003s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9529b632-3994-4b46-92c1-c321ad1dad54
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_admin [0.090110s] ... 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-b1b88f75-11a1-4ec5-8c32-41bf59cb67c6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation [0.029766s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_policy_not_found [0.025095s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve [0.025132s] ... ok
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported [0.111107s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_utils.TestCheckListPolicy.test_check_list_policy [0.030640s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_132_nodes_portgroups_get_member [0.096276s] ... 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-88b05343-eaf9-475f-b48a-4c9014d16fcd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden [0.022266s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden_no_project [0.022399s] ... ok
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk [0.061485s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_utils.TestCheckListPolicy.test_check_list_policy_non_admin [0.033303s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_133_nodes_portgroups_get_observer [0.099785s] ... 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-b53aceeb-a0ab-4121-9059-6383cbea7328
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin_owner_proj_mismatch [0.034457s] ... ok
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail [0.082902s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_utils.TestCheckListPolicy.test_check_list_policy_with_owner [0.024223s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve [0.021306s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve_first_fail [0.021414s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_134_nodes_portgroups_detail_get_admin [0.074200s] ... 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-d50e3a32-547d-4522-a68d-756b62e8b34a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:39.156842+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_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.026182s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve [0.031569s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.026482s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node_policy_notfound [0.033862s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden [0.028863s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_with_suffix [0.040409s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned [0.060463s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_077_lessee_manager_cannot_delete_nodes [0.535545s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-fc97e57a-f44a-407c-bac0-e4f51b63b431
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings [0.025619s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned [0.022053s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates [0.020601s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str [0.020763s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_135_nodes_portgroups_detail_get_member [0.355815s] ... 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-2dfcf2c7-e3eb-4b5d-b28d-7a18d5fa2e05
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail [0.418341s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_versions.TestVersionConstants.test_min_ver_str [0.051617s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match [0.036464s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_078_third_party_admin_cannot_delete_nodes [0.168876s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-12b47181-9896-4f4a-94bf-d3f1070408ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_136_nodes_portgroups_detail_get_observer [0.086256s] ... 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-778557c4-172e-4286-90a9-7c5472e2fbfd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:56:39.599210+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail [0.091241s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_001_values ... SKIPPED: These are fake reference values for YAML templating
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_137_ports_get_admin [0.081880s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b43c73ed-4fde-41e0-8a82-9ba8126bb092
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait [0.086539s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_079_owner_admin_can_validate_node [0.141392s] ... 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-d1e8d13f-ed56-48c3-9640-78fcb57be339
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_member [0.079714s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4501fecf-532c-471f-91a6-f7d98f8ffca7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail [0.117586s] ... ok
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.TestRBACScoped.test_rbac_legacy_002_nodes_post_admin [0.137766s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f8d57640-8237-4bb9-a78c-a2f2dcad705e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_080_owner_manager_can_validate_node [0.112038s] ... 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-f859cf19-56d4-4649-819e-312e50073efc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_network_error_fail [0.076180s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_139_ports_get_observer [0.137425s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7c1b463a-e5cb-46a0-a465-ac9386bbdcc1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_003_nodes_post_member [0.122119s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0f467bc0-2937-4f69-b9f9-6c442fd4f7f1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean [0.080507s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step [0.056842s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_admin [0.141819s] ... 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-e52562ac-ca16-438a-8716-0d531290ba9b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_081_lessee_admin_can_validate_node [0.210924s] ... 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-71c95ff4-4207-4c0d-b4d7-cb852cdd455b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_004_nodes_post_observer [0.153240s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6faa669a-6cb5-4213-b442-3c1b0dde4304
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_agent_busy [0.069805s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_082_lessee_manager_can_validate_node [0.076652s] ... 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-9d2804e4-8b80-469d-a836-29236d47c1a0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_005_nodes_get_node_admin [0.109548s] ... 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-e00e1e97-2364-4ec0-8921-0916546d6981
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_083_owner_member_can_validate_node [0.087138s] ... 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-45f0aa1f-169a-43bd-886b-adce76c2edba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_all [0.108221s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_141_ports_post_member [0.191752s] ... 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-463e6b48-c820-472e-9f6a-480c053cc825
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async [0.070752s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_006_nodes_get_node_member [0.090293s] ... 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-ed75c9ab-63e1-4c09-8d4a-4bd9b1850d0a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_084_lessee_member_cannot_validate_node [0.140963s] ... 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-1f306db8-34c6-46a9-bfc2-b273a47800ca
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_142_ports_post_observer [0.142732s] ... 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-f24a9f39-31a4-4674-8d47-a26ff4aeea33
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_collect_logs [0.101587s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_007_nodes_get_node_observer [0.130887s] ... 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-98caa3b9-5172-402d-aefc-a0faea91f87e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_085_third_party_admin_cannot_validate_node [0.109833s] ... 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-56b313b1-97cf-4cf8-8351-424bea6f1b45
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_143_ports_detail_get_admin [0.094990s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7023a278-418d-428d-a750-5a18958e936b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:40.479453+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.149149s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_member [0.110647s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2b7a6680-0ef4-4b4f-aafa-867eaf3e49eb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin [0.172979s] ... 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-3f3225aa-fae3-4532-bd3c-e7ac1567cfa5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_admin_can_set_maintenance [0.180474s] ... 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-697cef59-f6de-4a6c-bd08-caf7fdaa5dc7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_active [0.125332s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_145_ports_detail_get_observer [0.092359s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e987ba40-9114-4cf8-8bf5-cc6e507e296f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:40.682511+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_wait [0.066565s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_087_owner_manager_can_set_maintenance [0.104562s] ... 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-931c8fc8-ea94-499c-b12f-85da0d8e4fd9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_admin [0.102333s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ac58973d-c6e2-4fc3-8a83-364887075d97
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:40.779058+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all [0.095412s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_009_nodes_get_admin [0.236800s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3319f011-112c-46c4-aaea-02905fd38527
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_088_lessee_admin_can_set_maintenance [0.111899s] ... 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-90b28733-2723-4422-b45e-c3e5152f85d4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_member [0.162017s] ... 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-5c18c769-1bf5-4088-83ba-90c761b85b8f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk [0.127414s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_010_nodes_get_other_admin [0.144680s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2df02ce2-649d-4be8-9179-c50bb97398d7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": []}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_089_lessee_manager_can_set_maintenance [0.138077s] ... 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-153a2808-0f81-4f4e-9fef-bbda233507db
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_011_nodes_detail_get_admin [0.071950s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-43d086af-d90f-4d36-9d4b-178c90ac91f2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_090_owner_member_can_set_maintenance [0.086411s] ... 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-b62a5b6e-aae5-44d0-8756-78b44de77e8a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.124906s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_148_ports_port_id_get_observer [0.161775s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6957a3fa-efcd-4d88-9cd9-bc86e2f0a08c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:41.093466+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_012_nodes_detail_get_member [0.087223s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f5eb1b95-63f7-4986-b9c1-be476aacdccc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async [0.096477s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_091_lessee_member_cannot_set_maintenance [0.163839s] ... 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-215eb155-6e9f-40b2-8a63-d9d2f9eb7ae9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_013_nodes_detail_get_observer [0.112069s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c164c692-2d4f-4360-9a52-23ef6f4f1070
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_149_ports_port_id_patch_admin [0.151041s] ... 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-479d902b-a99a-4f52-9f16-f120d44332a8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin [0.107227s] ... 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-a7bd398a-2f17-444e-aca5-286d84f4810b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_150_ports_port_id_patch_member [0.105346s] ... 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-2a4c8b76-1f18-449a-b19b-d92158a834e4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_092_third_party_admin_cannot_set_maintenance [0.136608s] ... 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-e163fe6b-b183-4c79-bab8-c5193a26aed6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot [0.188223s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member [0.083229s] ... 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-bd35c0dd-38f9-4884-8dbe-939d94d8a8b5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_093_owner_admin_can_unset_maintenance [0.135696s] ... 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-79ab08a9-2a66-4c21-857d-22aa3a8db7c9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail [0.149566s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_patch_observer [0.172677s] ... 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-8ad5f0a2-ce1c-407f-b529-833e7f665528
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_094_owner_manager_can_unset_maintenance [0.117304s] ... 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-e7c3f6a3-b678-41d4-87cb-972db116b8d7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step [0.138612s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_152_ports_port_id_delete_admin [0.152938s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-09acc50a-9206-493c-8fec-60ef96be3d23
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_016_nodes_node_ident_get_observer [0.322549s] ... 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-369b0790-1d93-4ff6-8c3e-258a73e98881
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_node_clean_steps_fail_poweroff [0.103173s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_member [0.092169s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4c43417a-a04c-4254-97a3-acf9d9a468f4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_095_lessee_admin_can_unset_maintenance [0.179806s] ... 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-60c7ac1d-c829-4083-bb8c-fa7126a94230
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.104557s] ... 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-a79c32b9-fffc-425a-8f97-c71010c893aa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error [0.126076s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACModelBeforeScopes.test_rbac_legacy_154_ports_port_id_delete_observer [0.130949s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-510b9fcd-3132-4e4b-8d50-1d018a20a41c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_096_lessee_manager_can_unset_maintenance [0.153662s] ... 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-da8bf5a3-43b4-4984-a141-29800fa79382
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member [0.124905s] ... 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-2dfda4ce-8540-4921-ad8a-8f12f13c52a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error [0.134414s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACModelBeforeScopes.test_rbac_legacy_155_nodes_ports_get_admin [0.102148s] ... 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-e37a0926-e137-4df9-a20b-3f82ae5b877c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.088799s] ... 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-ec41ab5f-f367-4173-af81-8c76a6e2f873
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_156_nodes_ports_get_member [0.080769s] ... 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-92a521cf-67dd-4cef-82f9-9a13a11f0fc1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_097_owner_member_can_unset_maintnenance [0.164523s] ... 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-1c64a9bd-6f4b-46c0-b868-762aefdbc4ef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error [0.157890s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.111178s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f17c810d-eb4c-4977-aeae-55691be06586
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member [0.076255s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6a5ccdd8-75b3-4c57-99c1-01350d7a4e3f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_098_lessee_member_cannot_unset_maintenance [0.171502s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-00624d52-029d-438c-b830-b59163ebdcc0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_get_observer [0.206000s] ... 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-2f4df9b3-4999-4323-9fa9-340631731f1e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.080749s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c0cd531c-b1aa-4f71-a831-63962dd86ad9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_099_third_party_admin_cannot_unset_maintenance [0.091320s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/46a1bfd9-ad26-46f0-beea-8c92645428ac/maintenance GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c72071b0-3e04-4fa0-9a7c-aa7ebf48aa52
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 46a1bfd9-ad26-46f0-beea-8c92645428ac could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception [0.221785s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin [0.088918s] ... 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-f5f1c338-1b5b-4d03-8dfb-c797a99e72ed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_admin [0.117552s] ... 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-2a533d30-bc30-4a68-8cdb-843e13e18890
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:42.454820+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_100_owner_admin_can_set_boot_device [0.093932s] ... 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-32cd836e-da51-4593-bbf6-0eecdadf29f8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_024_nodes_validate_get_member [0.076912s] ... 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-880bf093-75dd-4ce6-b282-0a1919d19e7e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_159_nodes_ports_detail_get_member [0.145135s] ... 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-48294c21-dc63-4e32-8afd-567cb9c676c0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old [0.204099s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_101_owner_manager_can_set_boot_device [0.148543s] ... 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-9998512a-cd6f-4579-98c6-74286ffe3118
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer [0.147464s] ... 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-4629905a-8a0d-4ebd-81f0-d37ab685588f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin [0.076254s] ... 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-3b59cdcd-9a30-41bd-b057-b767b9591967
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_160_nodes_ports_detail_get_observer [0.139996s] ... 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-e5c8d460-e7d3-4177-8a45-0aab21c1f4d3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:56:42.750220+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_102_lessee_admin_cannot_set_boot_device [0.186004s] ... 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-0106ada1-e94a-4497-aca0-2173ec292550
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_027_nodes_maintenance_put_member [0.077387s] ... 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-bc534055-15ea-4f59-a159-0c68201d9d50
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_admin [0.142099s] ... 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-4ad385b3-d15b-4dd1-afec-f6cb97874e5c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error [0.282105s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_028_nodes_maintenance_put_observer [0.083564s] ... 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-ce9ac6a5-06f1-45de-b903-9be8850c5dd0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_162_portgroups_ports_get_member [0.074754s] ... 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-f8af30b6-27e0-420e-abcb-b280899124ea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.063181s] ... 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-7726a978-9f7e-4ca0-b12c-4ce6012be1a0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_103_lessee_manager_cannot_set_boot_device [0.176967s] ... 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-8726cf9d-1fc8-4762-b545-fbf732591754
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member [0.090185s] ... 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-3e2dfdae-e574-441b-aa99-2d8abc3e7bb4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_104_owner_member_cannot_set_boot_device [0.124870s] ... 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-c4d8ad5d-f071-4283-9011-70517a07a588
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_163_portgroups_ports_get_observer [0.166987s] ... 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-7914b91a-543f-4f9d-9ed7-2fc029b0befa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception [0.247249s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.089113s] ... 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-9c4010ec-ffc2-48c0-82a4-a69a58b0933a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_105_lessee_member_cannot_set_boot_device [0.107409s] ... 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-ce850697-fc0f-4ae3-8c9d-0b99fcc9cb6c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.100454s] ... 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-d8ca89ba-6571-4c2f-8a84-e3e78c561a39
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_admin [0.132880s] ... 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-00143b38-9ee0-463c-b9e3-6b06b635471d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.093626s] ... 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-d92bc0d8-d190-44eb-8ff8-a73f377a184f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_106_third_party_admin_cannot_set_boot_device [0.111722s] ... 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-fa93cd1f-a097-4ceb-9da0-0f1828abc7ee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_member [0.106110s] ... 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-23aa9270-4015-4ac2-bef3-1927a74a9e8e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_fast_track [0.228316s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_107_owner_admin_can_get_boot_device [0.101494s] ... 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-a52f802a-eb7b-4d90-8cd9-97b6125eae93
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_166_portgroups_ports_detail_get_observer [0.108412s] ... 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-ee282bb5-dde4-4cdd-b206-1e2182212cbc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.165845s] ... 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-9abf1385-164e-41a8-82d0-63a3ff7a4351
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_108_owner_manager_can_get_boot_device [0.096159s] ... 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-aa4e948c-1586-4387-93de-15c22ea32273
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok [0.225086s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_109_lessee_admin_cannot_get_boot_device [0.090101s] ... 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-30d7166e-ab06-43f4-8cbf-0a69c92bdff6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.160732s] ... 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-f51f9287-7f64-485e-8e69-a1014a3915a6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.073387s] ... 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-9285abf5-2913-47a5-afd8-1f6f14409bcf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_2 [0.176082s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.088042s] ... 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-9d2e6340-018e-46f3-af4f-7023f4ec6bfc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_110_owner_member_cannot_get_boot_device [0.200894s] ... 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-0715ed36-06c6-4b94-b17a-129379674585
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.088990s] ... 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-8ddf1ab6-93dd-42bf-b1d1-b740e2d0bbef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_167_volume_get_admin [0.545622s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dbf5db53-4359-41cb-993c-c74d34989b03
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.111891s] ... 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-06969bb7-66eb-4621-84f1-fd7b15e89932
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive [0.258085s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.065100s] ... 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-97a79b52-1b73-4d19-81b9-be37cce6aa6b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_168_volume_get_member [0.098042s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8a470061-cb52-49e0-86db-4b5551a266fb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.074251s] ... 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-e5ca1e8b-0e27-4f40-9390-c7b1c259e6c3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_111_lessee_member_cannot_get_boot_device [0.345619s] ... 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-ae99328f-97a0-4966-a5bf-aa3ca323ac40
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_169_volume_get_observer [0.092878s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-54fafe30-80c2-47c2-9473-aa4f672a5304
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.075407s] ... 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-561ff5f8-9f60-4dbb-8ee0-0d30c77da9cb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_112_owner_reader_cannot_get_boot_device [0.113483s] ... 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-ca19de4d-115c-46ee-9499-88c940e29ae8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.090176s] ... 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-65afc57a-878d-41ec-b597-6abec61e2b25
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_170_volume_connectors_get_admin [0.142521s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-509c520a-0657-436c-bdeb-7a911a8cc4b5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "41d0989c-0705-4c58-a568-71dfca348463", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/41d0989c-0705-4c58-a568-71dfca348463", "rel": "self"}, {"href": "http://localhost/volume/connectors/41d0989c-0705-4c58-a568-71dfca348463", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_113_lessee_reader_cannot_get_boot_device [0.135562s] ... 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-c4486c70-b670-4625-a915-13a8db9bf03b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_044_nodes_states_get_admin [0.086356s] ... 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-f116329a-0da1-4a0c-8cec-ec4e751cb773
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_171_volume_connectors_get_member [0.124971s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8455f08f-5ff1-4c1a-a19b-e306a65d32b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_045_nodes_states_get_member [0.076858s] ... 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-34943d2d-66a4-4339-a37c-87f6e1b19b26
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_114_third_party_admin_cannot_get_boot_device [0.113234s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/de03f4fc-d708-4254-ae98-17fdde2434e4/management/boot_device WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-94f9db81-83a4-4a8c-b667-5c91195d3c06
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node de03f4fc-d708-4254-ae98-17fdde2434e4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_172_volume_connectors_get_observer [0.088290s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-352f1558-ebbb-4b03-ace8-2161c0770c9b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "12c8b176-6991-4f67-ba6f-248a3523d5fd", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/12c8b176-6991-4f67-ba6f-248a3523d5fd", "rel": "self"}, {"href": "http://localhost/volume/connectors/12c8b176-6991-4f67-ba6f-248a3523d5fd", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer [0.110218s] ... 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-682d9e36-aacc-4689-b78f-868673edbe91
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error [0.583687s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACModelBeforeScopes.test_rbac_legacy_173_volume_connectors_post_admin [0.091284s] ... 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/174ccea8-d86e-4902-9aec-41d627afdd09
Openstack-Request-Id: req-c3693973-3d3b-4241-8038-f3bb1ec472fd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "174ccea8-d86e-4902-9aec-41d627afdd09", "created_at": "2025-05-29T16:56:44.716940+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/174ccea8-d86e-4902-9aec-41d627afdd09", "rel": "self"}, {"href": "http://localhost/volume/connectors/174ccea8-d86e-4902-9aec-41d627afdd09", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_115_owner_admin_can_get_supported_boot_devices [0.147190s] ... 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-d85ef238-976f-4cfa-95a7-670968d180cc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_047_nodes_states_power_put_admin [0.104773s] ... 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-22b50eb0-75f0-481e-b457-2b6d7ce96769
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_174_volume_connectors_post_member [0.085673s] ... 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-f71bd3ee-c210-437c-8ac6-d52f35e49092
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_116_owner_manager_can_get_supported_boot_devices [0.083399s] ... 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-d7f3f9cb-304e-453c-8bb3-766cc09e2e2c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_048_nodes_states_power_put_member [0.111055s] ... 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-bbff3602-5fdf-4afa-915e-3c08367c1a31
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_175_volume_connectors_post_observer [0.105625s] ... 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-cb82a3d9-8012-4bb2-a6b6-694a592f51f9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_117_owner_member_cannot_get_supported_boot_devices [0.099588s] ... 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-40f9c93b-d153-42aa-970b-eaa3ca2f61fb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_049_nodes_states_power_put_observer [0.086141s] ... 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-098865aa-7d1a-4601-9154-4540bfa99b58
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_176_volume_volume_connector_id_get_admin [0.093308s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/8387f96d-21c9-4b51-9725-2365adc97bf9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b07c1751-1af4-4c23-97a8-9a00713ab808
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "8387f96d-21c9-4b51-9725-2365adc97bf9", "created_at": "2025-05-29T16:56:44.962303+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8387f96d-21c9-4b51-9725-2365adc97bf9", "rel": "self"}, {"href": "http://localhost/volume/connectors/8387f96d-21c9-4b51-9725-2365adc97bf9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_do_node_deploy_steps [0.314405s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_118_lessee_admin_cannot_get_supported_boot_devices [0.137640s] ... 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-b23ac8d4-d9d7-494f-b43e-522b2e4bd71e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_node_validation_in_disabled_bios_boot_mode_fails [0.073802s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_177_volume_volume_connector_id_get_member [0.109561s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/2961c30e-104e-44c5-b9db-d112f16bff5e WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-241c0f32-41a5-4852-bb8e-d575b10627b1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 2961c30e-104e-44c5-b9db-d112f16bff5e could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_node_validation_in_disabled_uefi_boot_mode_fails [0.091297s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_178_volume_volume_connector_id_get_observer [0.139748s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/bf827345-936f-4ae9-929e-6e1cff07d462 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c3e05c01-2145-40b1-93de-c9108b42ff5b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "bf827345-936f-4ae9-929e-6e1cff07d462", "created_at": "2025-05-29T16:56:45.217047+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/bf827345-936f-4ae9-929e-6e1cff07d462", "rel": "self"}, {"href": "http://localhost/volume/connectors/bf827345-936f-4ae9-929e-6e1cff07d462", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_legacy_false [0.118633s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_119_lessee_manager_cannot_get_supported_boot_devices [0.259471s] ... 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-ad02793e-ecae-4439-93d2-21a2cd12deab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.370511s] ... 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-036ff26e-a5f0-463f-9018-1834e416087e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_179_volume_volume_connector_id_patch_admin [0.093639s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/ec048179-d143-4f31-927d-666f93f550c7 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-895b1298-6dba-4bf7-9697-108565f5709c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.078599s] ... 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-5902054f-5714-42c2-9ee8-dc0f519285ea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_180_volume_volume_connector_id_patch_member [0.089623s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/d9075b7c-95ab-4706-9d01-064183f70bf4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e5593eea-5470-4b0f-af0c-0c6df934ac75
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector d9075b7c-95ab-4706-9d01-064183f70bf4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_120_third_party_admin_cannot_get_supported_boot_devices [0.108161s] ... 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-41879ab8-621b-42da-b7b8-fe2941e71a28
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_legacy_false_even_if_src_set [0.151233s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.088593s] ... 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-e35dc19b-2ae2-4d41-9408-28a075370e14
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_181_volume_volume_connector_id_patch_observer [0.109318s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/09e85a33-9e1e-4c2a-8541-0fa045c2290d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ed86d9c9-541a-480b-a587-9eae0d2b49fa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_121_owner_admin_can_send_non_masking_interrupt [0.106797s] ... 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-35b5e040-afdf-46db-93f2-b4b89d6f8696
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_instance [0.108474s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.094898s] ... 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-000a5772-045d-4a4b-98c7-4471f9f86771
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_182_volume_volume_connector_id_delete_admin [0.130827s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/85dc75f7-4920-4724-b180-7113a87341dc GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-54eb9682-e001-47d5-a574-817356496508
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_122_owner_manager_can_send_non_masking_interrupt [0.137301s] ... 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-6889d647-a2ef-4028-9da7-1385162e6d5f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.089399s] ... 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-7e87473c-55f1-418f-8dd0-959a582498fa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_none [0.119462s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_123_lessee_admin_cannot_send_non_masking_interrupt [0.100999s] ... 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-408077cc-8fc8-4a56-9ba1-908e044df6f6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.101157s] ... 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-1747146f-c989-43a8-8a4e-738fc9d27f5b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_member [0.137740s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/787f4c1f-7fb7-488a-8bc3-61bb0c64c476 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5c80b7df-c62a-4c20-aa88-8064bf3bb45f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 787f4c1f-7fb7-488a-8bc3-61bb0c64c476 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_request [0.147386s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_124_lessee_manager_cannot_send_non_masking_interrupt [0.091046s] ... 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-b226875d-48ea-4e52-88c8-01919433fbfa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_056_nodes_states_provision_put_admin [0.096389s] ... 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-b985bc5a-07b3-4231-8cf5-77ccf5190750
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_125_third_party_admin_cannot_send_non_masking_interrupt [0.101138s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/0ff52e53-d998-46ab-8d8e-662c9516794d/management/inject_nmi WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b88656f8-4eab-4b15-aa72-87d5163e1d5b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 0ff52e53-d998-46ab-8d8e-662c9516794d could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_184_volume_volume_connector_id_delete_observer [0.167060s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/3de26b59-359a-448b-95fa-8b48ae4f2376 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c85bd943-951f-49d7-a137-3f2f59dadac0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_057_nodes_states_provision_put_member [0.093373s] ... 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-13aa6ec6-6a87-422d-a514-0ae96fec7d47
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path [0.205066s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_126_owner_reader_get_states [0.088612s] ... 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-e60abee1-bd1f-4643-8d72-5aaf053fe36e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"console_enabled": false, "last_error": "meow", "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_058_nodes_states_provision_put_observer [0.085979s] ... 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-fd2c321d-8be8-41ac-be2d-9b949dd29169
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_185_volume_targets_get_admin [0.136354s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9951bd7b-998c-4603-a13c-b432efd8144a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "70b61a8e-af00-42dd-85d7-b020ea6bf945", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/70b61a8e-af00-42dd-85d7-b020ea6bf945", "rel": "self"}, {"href": "http://localhost/volume/targets/70b61a8e-af00-42dd-85d7-b020ea6bf945", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_059_nodes_states_raid_put_admin [0.095514s] ... 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-e4073c3a-26dc-4da8-8831-84af2b6a043e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_127_lessee_reader_get_states [0.113181s] ... 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-faf59d8f-57dd-4428-b0a3-83988c574d74
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"console_enabled": false, "last_error": "meow", "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_186_volume_targets_get_member [0.088928s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8ca540f3-87f9-45b6-9357-dd9a77676149
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path_none [0.165481s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_update_fails_on_invalid_boot_mode [0.023458s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_128_third_part_admin_cannot_get_states [0.084356s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/f6f42eb2-371e-4997-9caf-942e7bc84774/states WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5e6b0aa5-349a-4222-a2c1-668d9150cfef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node f6f42eb2-371e-4997-9caf-942e7bc84774 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_187_volume_targets_get_observer [0.098008s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6424ae1a-d615-41f5-a674-7742727803f7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "f8c19a2d-0b2a-42d5-b444-be26dbb90cc4", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/f8c19a2d-0b2a-42d5-b444-be26dbb90cc4", "rel": "self"}, {"href": "http://localhost/volume/targets/f8c19a2d-0b2a-42d5-b444-be26dbb90cc4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member [0.164240s] ... 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-1e75206c-636b-46db-91d5-580a66ad15d6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_129_owner_admin_can_put_power_state_change [0.172624s] ... 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-a1db46e5-6846-4631-bcbb-24f74656eff0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_getting_current [0.222944s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_061_nodes_states_raid_put_observer [0.158646s] ... 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-a22dfb9a-92d3-407d-9fc3-cb7ade7146ff
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_062_nodes_states_console_get_admin [0.102627s] ... 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-4fd49441-cea8-4138-9e8a-bcddbc3e24f8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_130_owner_manager_can_put_power_state_change [0.162646s] ... 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-e798fffc-f211-4ae8-868b-296e2dc5ee52
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_in_background_task [0.143885s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_188_volume_targets_post_admin [0.332202s] ... 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/73e5ec08-c863-4b7b-b7e7-d14bf79f8ae7
Openstack-Request-Id: req-c0aecb1e-f931-4ab3-895e-7d786279d0e3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "73e5ec08-c863-4b7b-b7e7-d14bf79f8ae7", "created_at": "2025-05-29T16:56:46.625581+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/73e5ec08-c863-4b7b-b7e7-d14bf79f8ae7", "rel": "self"}, {"href": "http://localhost/volume/targets/73e5ec08-c863-4b7b-b7e7-d14bf79f8ae7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_063_nodes_states_console_get_member [0.088047s] ... 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-cce5a25f-f7da-49df-a3d2-7640f653c0c7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_131_lessee_admin_can_put_power_state_change [0.087340s] ... 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-6ca8f182-149e-4b8d-a2ed-2040aba9a278
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_064_nodes_states_console_get_observer [0.080441s] ... 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-bd694d96-db69-46df-8496-f11ec1f4f385
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_189_volume_targets_post_member [0.132458s] ... 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-ade60b05-fbbe-4697-8051-883bd33595a5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_manager_can_put_power_state_change [0.093484s] ... 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-6241d87e-57b3-4177-8f05-50b3abfc8962
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing [0.228249s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_065_nodes_states_console_put_admin [0.112873s] ... 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-da61f37c-1bfd-4690-8de0-8486182bfadd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_190_volume_targets_post_observer [0.109382s] ... 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-ab80c0b6-9227-45a1-bcb8-1d80a9910750
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_133_owner_member_can_put_power_state_change [0.131624s] ... 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-46264045-2d3f-41dc-919d-fbb0a3aa75be
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_member [0.087709s] ... 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-b195ca1a-5cdb-4afc-a097-33187e79b561
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_191_volume_volume_target_id_get_admin [0.102038s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/09601419-e6d9-495a-a2e5-61b09e1261ba WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-efd249ad-8adb-4169-ab10-18e41b1a5102
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "09601419-e6d9-495a-a2e5-61b09e1261ba", "created_at": "2025-05-29T16:56:46.956133+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/09601419-e6d9-495a-a2e5-61b09e1261ba", "rel": "self"}, {"href": "http://localhost/volume/targets/09601419-e6d9-495a-a2e5-61b09e1261ba", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_134_lessee_member_can_put_power_state_change [0.095138s] ... 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-dc0dee6b-c697-4ac0-8baa-ec838d7bc68f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_node_already_locked [0.168224s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_067_nodes_states_console_put_observer [0.088320s] ... 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-3f839c07-ac2e-4c13-944e-68ab3c5553d1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_135_owner_reader_cannot_put_power_state_change [0.123575s] ... 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-32321d9a-2773-4d2d-a78a-a647bb72cd98
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_admin [0.084083s] ... 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-5a1c8d3c-62e6-45dd-ad59-6588570caf87
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_192_volume_volume_target_id_get_member [0.175168s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/d9a53501-b9f7-40e8-bbe7-9dbcf3ed03f6 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8d5680cf-ad07-47cf-91ce-d63a9c3dbb5b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target d9a53501-b9f7-40e8-bbe7-9dbcf3ed03f6 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid [0.180978s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_member [0.111470s] ... 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-647815f8-9b12-4ca0-9b85-a90499c97180
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_136_lessee_reader_cannot_put_power_state_change [0.115515s] ... 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-538a17fe-9824-4cc5-9006-70cadd75a071
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_193_volume_volume_target_id_get_observer [0.143727s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/fae9000c-db3b-433c-aefb-0d40ad224b30 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b594ebb9-4bbb-4235-a48c-e971c20c0fe7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "fae9000c-db3b-433c-aefb-0d40ad224b30", "created_at": "2025-05-29T16:56:47.285749+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/fae9000c-db3b-433c-aefb-0d40ad224b30", "rel": "self"}, {"href": "http://localhost/volume/targets/fae9000c-db3b-433c-aefb-0d40ad224b30", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail [0.096090s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_137_third_party_admin_cannot_put_power_state_change [0.086742s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/0447ac0a-32fa-4b84-b713-60471f27b134/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-df7575f0-500b-412c-80d6-e496531f3131
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 0447ac0a-32fa-4b84-b713-60471f27b134 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_070_nodes_vendor_passthru_methods_get_observer [0.094539s] ... 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-1cf7d4db-349f-4faf-bedc-288b63cf32ad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_194_volume_volume_target_id_patch_admin [0.132840s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/daebd81a-2387-425d-8272-388f4d5e570c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-875569bb-cd94-492a-87eb-993c2b1d427a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_071_nodes_vendor_passthru_get_admin [0.093256s] ... 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-b2494c17-23cb-4a67-b456-abf9d05f377d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_138_owner_admin_can_put_boot_mode_state_change [0.148977s] ... 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-73c8172e-2f8d-45fd-93ab-2dea146450dd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_member [0.120774s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/ef9ecab9-aaa4-42c0-875e-1ef7377efb2b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-23d96c7c-35fc-4e8e-a72a-234f5bdd27e2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target ef9ecab9-aaa4-42c0-875e-1ef7377efb2b could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_member [0.134380s] ... 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-8e8fc461-58e0-4d8e-9f57-02fbf342a00f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_worker_pool_full [0.273498s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_139_owner_manager_can_put_boot_mode_state_change [0.099247s] ... 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-f216990a-ce0e-42c8-ac1b-33a84dae09a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_196_volume_volume_target_id_patch_observer [0.093677s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/6e917647-2f7c-4048-8e9b-f285ea8eea61 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6ced07d2-c41c-4c7d-b629-e7a30f921f94
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_get_observer [0.128566s] ... 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-4e01f1f3-e0f8-48bb-8384-ec8120dcc977
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_140_lessee_admin_can_put_boot_mode_state_change [0.128255s] ... 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-781359fa-5ace-4663-8f74-672c7c79abee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean [0.135120s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_admin [0.106961s] ... 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-45d47c49-42f8-4f8e-ad03-8543453b3839
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_141_lessee_manager_can_put_boot_mode_state_change [0.157003s] ... 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-3ae467db-e841-449f-bd2a-833eda57a13b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_member [0.121662s] ... 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-0bb5d5a2-787a-445a-80c9-64123e66971d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_197_volume_volume_target_id_delete_admin [0.335790s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/57f1c80c-c1ac-43d6-a197-9117dcf9a234 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-714f017a-3e3b-4e90-a271-cead3d4093b4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_076_nodes_vendor_passthru_post_observer [0.075466s] ... 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-94e3f286-9f38-4d64-8fd5-230300a0cf5f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_142_owner_member_can_put_boot_mode_state_change [0.199499s] ... 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-1379c7be-6812-45d1-968e-8f0b509c0b43
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_198_volume_volume_target_id_delete_member [0.095720s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/30bd2c0e-cb7d-431e-894b-aea3a8f42fdc GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-19491a37-1053-452a-9975-702980a9b400
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 30bd2c0e-cb7d-431e-894b-aea3a8f42fdc could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_077_nodes_vendor_passthru_put_admin [0.103850s] ... 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-6e0c5edf-d7fb-4bd4-b46d-6f3fd55e0128
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout [0.406724s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_199_volume_volume_target_id_delete_observer [0.087783s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/9d53165b-13a4-412c-8c09-39831370f1c6 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9c9afd9a-4993-43b4-8609-e397a0586331
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_143_lessee_member_can_put_boot_mode_state_change [0.102089s] ... 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-bcd85683-357f-4e47-b885-c5e9969842e4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_member [0.084163s] ... 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-1c55e0dd-57ce-4e4f-b6a4-2f19bff5dd44
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_144_owner_reader_cannot_put_boot_mode_state_change [0.093550s] ... 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-f39fb049-8dce-43eb-ab5d-44d1329ea15f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_079_nodes_vendor_passthru_put_observer [0.080851s] ... 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-7c53f180-1d70-4898-aa62-e6b6e9d916b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_200_nodes_volume_get_admin [0.112570s] ... 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-50a9c71f-0944-4019-9a2d-970ca093fd94
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{3} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean [0.156971s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_080_nodes_vendor_passthru_delete_admin [0.099728s] ... 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-cdeadfba-5f7f-42ea-9332-a1a3cfc587b5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_145_lessee_reader_cannot_put_boot_mode_state_change [0.149301s] ... 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-9632a661-880f-45a8-b8a1-a9843e0ba10d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_201_nodes_volume_get_member [0.143945s] ... 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-a6d82b9b-4169-42fb-8163-d6236f5fdeed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts [0.166627s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_081_nodes_vendor_passthru_delete_member [0.107053s] ... 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-f3341181-717f-4b25-8cd2-cc9a2060826f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_202_nodes_volume_get_observer [0.104584s] ... 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-74f90461-f5a1-4ced-90be-8e692e2d35b1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_vendor_passthru_delete_observer [0.070221s] ... 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-0a27e7a6-8f59-4d47-b6e6-6c34feaa9444
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_203_nodes_volume_connectors_get_admin [0.122255s] ... 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-57b8cd09-ebf3-4def-b80c-29165e3faeb4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "d468be03-3ba6-4170-9f8d-d15b5db76edf", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/d468be03-3ba6-4170-9f8d-d15b5db76edf", "rel": "self"}, {"href": "http://localhost/volume/connectors/d468be03-3ba6-4170-9f8d-d15b5db76edf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_083_nodes_traits_get_admin [0.176973s] ... 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-19cb3af8-7728-4c77-b7d0-6fa465ccf1bf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts [0.308692s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_204_nodes_volume_connectors_get_member [0.132815s] ... 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-ca767211-10ce-4f52-96d0-1e88b63901b0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_146_third_party_admin_cannot_put_boot_mode_state_change [0.393032s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/2e3569ea-88c3-4c37-84a7-2395d2f68ca1/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c7cabcb3-4c9d-4929-8f93-9a0a0737cce3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 2e3569ea-88c3-4c37-84a7-2395d2f68ca1 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_servicewait_timeouts [0.130637s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_205_nodes_volume_connectors_get_observer [0.127017s] ... 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-a96549a1-1746-4e79-8d3c-0bc7dd24acd1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "71ec2f58-866b-40e4-9d13-a68019b09fc8", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/71ec2f58-866b-40e4-9d13-a68019b09fc8", "rel": "self"}, {"href": "http://localhost/volume/connectors/71ec2f58-866b-40e4-9d13-a68019b09fc8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_147_owner_admin_can_put_secure_boot_state_change [0.110739s] ... 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-a0f97e15-f1a9-41dd-8d73-8fcd8557863b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target [0.057289s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_148_owner_manager_can_put_secure_boot_state_change [0.099063s] ... 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-ee23151f-7658-4744-adf7-55d6a524d6ae
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed [0.079328s] ... ok
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.TestRBACModelBeforeScopes.test_rbac_legacy_206_nodes_volume_targets_get_admin [0.180425s] ... 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-ce3e4459-f595-4987-8c9c-ae4426dbcb8d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "108ec98a-59d1-4d3e-833b-1426b90b7aee", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/108ec98a-59d1-4d3e-833b-1426b90b7aee", "rel": "self"}, {"href": "http://localhost/volume/targets/108ec98a-59d1-4d3e-833b-1426b90b7aee", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_149_lessee_admin_can_put_secure_boot_state_change [0.091854s] ... 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-8fda0286-30c2-4c12-a699-be267dc82584
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_084_nodes_traits_get_member [0.395196s] ... 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-b0bda68c-9265-4011-97a1-955d485605a0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone [0.081111s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked [0.041511s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_085_nodes_traits_get_observer [0.089431s] ... 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-f5fa3eaa-fbbe-45f0-9aef-e74a39d46b07
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_207_nodes_volume_targets_get_member [0.128586s] ... 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-fec6b671-56e7-4b31-ad4b-7a373ec8bd36
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on [0.078727s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_150_lessee_manager_can_put_secure_boot_state_change [0.151723s] ... 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-233e561e-5ebf-4e57-ae88-268ad4c05280
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_086_nodes_traits_put_admin [0.111914s] ... 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-be8d52e2-e35a-4902-a2bc-c3b7244b24ef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_208_nodes_volume_targets_get_observer [0.164029s] ... 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-f8535139-0898-40b6-a342-84e149208532
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "84227f31-7f49-4103-9d95-200f5d9920fc", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/84227f31-7f49-4103-9d95-200f5d9920fc", "rel": "self"}, {"href": "http://localhost/volume/targets/84227f31-7f49-4103-9d95-200f5d9920fc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_151_owner_member_can_put_secure_boot_state_change [0.130319s] ... 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-c6865995-ad43-4270-a1d2-48c8c57578b4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_152_lessee_member_can_put_secure_boot_state_change [0.076493s] ... 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-2b0508c5-da10-48d5-b218-139c1cd72618
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_087_nodes_traits_put_member [0.188678s] ... 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-98358145-4652-4d5d-a8e8-f68c058af6e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_153_owner_reader_cannot_put_secure_boot_state_change [0.071851s] ... 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-27b252a7-3c74-4e7e-a54d-894098da19e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_209_drivers_get_admin [0.167021s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3f8d9f47-7d1d-4885-88fa-ead39dd2ee9a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"drivers": []}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_210_drivers_get_member [0.079370s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0e6fe34b-ec90-4764-8a8e-201cf3183292
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_154_lessee_reader_cannot_put_secure_boot_state_change [0.089165s] ... 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-8a6cb143-4ac5-45b2-9c26-ffcfaa6497c8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_088_nodes_traits_put_observer [0.138376s] ... 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-82ae4511-cb88-473e-b01e-bf653933e5a9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_155_third_party_admin_cannot_put_secure_boot_state_change [0.101002s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/25f151c2-a29f-4281-9473-5d5a87ebf18e/states/secure_boot WITH {'target': 'true'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-cfa9c1c6-823f-4962-8471-1ba89d714f40
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 25f151c2-a29f-4281-9473-5d5a87ebf18e could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_admin [0.094373s] ... 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-f58a1393-a053-4eb4-bb1f-fa245e19d0ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_211_drivers_get_observer [0.178918s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f97fa536-9843-44a8-a790-b302a24a3b57
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"drivers": []}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_090_nodes_traits_delete_member [0.113373s] ... 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-6368260f-b0d1-4399-9b43-ed1fc4d46dab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_156_owner_admin_can_change_provision_state [0.162223s] ... 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-707d098a-f6ca-4beb-9dcc-c019e0a0980f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_212_drivers_driver_name_get_admin [0.102107s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-331fedbe-7450-4cdf-bef1-759f5e0d186b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_091_nodes_traits_delete_observer [0.086099s] ... 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-5fb118af-5940-40da-8e0f-6a1dc72cd8f4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_213_drivers_driver_name_get_member [0.124861s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1f9a73c0-0901-4848-8d2a-b13ce8355c01
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_157_owner_manager_can_change_provision_state [0.144127s] ... 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-a3f3ed00-c930-4748-81cd-4543d827bc15
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_092_nodes_traits_trait_put_admin [0.129463s] ... 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-0d4ef75b-a6cb-43ea-9fea-a9b56aeb7adc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_214_drivers_driver_name_get_observer [0.080388s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-9f1856ea-7b3e-4b44-a50c-f7e179a4d4c2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_158_owner_member_can_change_provision_state [0.099690s] ... 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-b6549f4b-ca5f-40ea-af3d-5f18425f5044
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_215_drivers_properties_get_admin [0.095349s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-758bf670-d597-49cc-8e8a-71b7684ab629
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_093_nodes_traits_trait_put_member [0.139864s] ... 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-ca00fdcf-71ef-4f6f-968c-233664871578
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_159_lessee_admin_can_change_provision_state [0.075482s] ... 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-5b1d6443-855d-4d0d-8374-4de9c184f87e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_216_drivers_properties_get_member [0.096786s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ec669763-f257-4bb8-9bff-1a7219a9d5c2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_properties\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_160_lessee_manager_can_change_provision_state [0.089266s] ... 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-1a77158b-54df-4045-8363-3eb062ff81b4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_094_nodes_traits_trait_put_observer [0.138415s] ... 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-dd9985d0-688a-47ed-ace4-ced8a7cb2c15
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_217_drivers_properties_get_observer [0.078163s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f04c33e8-fa1d-4969-9b2f-279e0ae44774
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_161_lessee_member_cannot_change_provision_state [0.087534s] ... 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-c44bf904-0e15-44be-be8b-bdbcdcb1142b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_095_nodes_traits_trait_delete_admin [0.080312s] ... 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-eaad8a0f-593a-4fbc-99f2-61515c839fd5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_admin [0.106043s] ... 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-32b0dc2e-c8ba-4f2f-b812-9d6383316614
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_162_third_party_admin_cannot_change_provision_state [0.091641s] ... 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-11c66612-8026-43fb-b474-bca51e71bca6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_096_nodes_traits_trait_delete_member [0.076383s] ... 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-b82869a6-24c3-42ca-a5a9-105c23bc4489
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_163_service_can_change_provision_state_for_own_nodes [0.103189s] ... 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-37601a46-3358-4bb1-83d0-80aebbfd8fc1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_097_nodes_traits_trait_delete_observer [0.088938s] ... 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-dd8fccdc-f2eb-40c3-a368-d20ec0ffa911
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_member [0.118745s] ... 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-e2161ed1-31b3-4f94-afea-cc0db5496cf8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_raid_logical_disk_properties\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states [1.466037s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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()
/usr/lib/python3.9/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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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()
/usr/lib/python3.9/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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or vi
    a inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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()
/usr/lib/python3.9/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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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()
/usr/lib/python3.9/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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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()
/usr/lib/python3.9/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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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()
/usr/lib/python3.9/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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_raid_logical_disk_properties_get_observer [0.144386s] ... 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-3028d4af-7f73-45e8-92b0-a679cf4190a2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_098_nodes_vifs_get_admin [0.172847s] ... 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-95f983a6-a9bb-41b1-a7fa-fd252a4a490b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_164_service_cannot_change_provision_state [0.203924s] ... 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-f2c86474-327f-4c3d-ae35-9e8ffe4b5bac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_admin [0.092043s] ... 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-398d0bc7-1a1e-4988-846b-6091509ce743
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console [0.185102s] ... ok
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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_099_nodes_vifs_get_member [0.148199s] ... 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-f5b2ccb3-bfb9-46f4-b69e-fc1e677d679b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_165_owner_member_can_set_provision_state_clean [0.143569s] ... 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-00261f3f-d735-4c04-b550-f5b8fb03ff22
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_member [0.148278s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9d6c3f35-86d0-4afd-a7c7-a696f373534c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_100_nodes_vifs_get_observer [0.134709s] ... 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-0f1729d3-a048-4102-8ecf-835157e0598f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_166_owner_reader_cannot_set_provision_state_clean [0.155949s] ... 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-901ba4bd-e5f1-4b2b-a59e-1f2ff18087d7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_101_nodes_vifs_post_admin [0.071070s] ... 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-d47e3b5a-faad-4543-9caa-da8d7d6e63e7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console [0.230937s] ... ok
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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_223_drivers_vendor_passthru_methods_get_observer [0.158567s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2a20b0be-4d32-4189-9880-6cd2a8f5414c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_102_nodes_vifs_post_member [0.086554s] ... 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-f7b8fb5a-3877-4d71-9cd4-275b2dc97ce1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_167_lessee_admin_can_set_provision_state_clean [0.121682s] ... 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-d0a6e0d8-08fa-4397-8272-c19b65e01116
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_224_drivers_vendor_passthru_get_admin [0.140160s] ... 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-61a6b1de-e3a2-4588-9f87-67b657c5504a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_post_observer [0.133519s] ... 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-e57750e1-42df-4ece-b243-c047021c9ff6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_member [0.073768s] ... 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-2f39edc1-761b-46d6-9c36-3d9d0e95b305
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_168_lessee_member_cannot_set_provision_state_clean [0.183917s] ... 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-fa42d895-8c3d-40aa-a3f9-b48ce10c48aa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_226_drivers_vendor_passthru_get_observer [0.064082s] ... 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-2852d749-758b-4edd-9708-5b3c13a549e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation [0.311610s] ... ok
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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_admin [0.133559s] ... 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-f3fa5192-01c8-4ff1-bf0e-1d9bf703fb61
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_169_owner_member_can_set_provision_state_service [0.107780s] ... 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-86c0e624-cb05-46a4-8e6d-ac27652f562b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_227_drivers_vendor_passthru_post_admin [0.088394s] ... 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-376ef74b-dc02-4012-86ca-e8d10019d6e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_member [0.070454s] ... 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-1015733b-3320-4205-9f45-42aba4442efc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_member [0.129184s] ... 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-c42d2474-32c4-4876-9f32-07531d3fa3a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_source_path [0.159059s] ... ok
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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_170_owner_reader_cannot_set_provision_state_service [0.154416s] ... 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-35d1582a-5cd8-497e-814a-8695f1915f14
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_229_drivers_vendor_passthru_post_observer [0.093201s] ... 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-90356dd3-0dc0-4c43-8385-068cff087518
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_106_nodes_vifs_node_vif_ident_delete_observer [0.104181s] ... 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-94f5f1a2-44e0-43f4-8c03-1fc7c6439572
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_230_drivers_vendor_passthru_put_admin [0.073984s] ... 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-98ebc8c9-25d8-404d-81c7-7ad61ee01c7a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_remove_vif_failed [0.153431s] ... ok
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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_107_nodes_management_indicators_get_admin [0.134290s] ... 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-ac707362-b585-4235-b9ec-055e60ff881d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_171_lessee_admin_can_set_provision_state_service [0.197779s] ... 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-b9a5bd3a-b82b-4475-ba2a-c85c28ade8f9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_231_drivers_vendor_passthru_put_member [0.116068s] ... 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-60d6f71d-9615-4844-b3b1-a8897bc73a61
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_172_lessee_member_cannot_set_provision_state_service [0.087718s] ... 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-92cede4f-f92e-48f1-906c-eba5ff0df571
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_member [0.148106s] ... 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-71996d45-ad9f-4b0f-8b9f-1d954ae0c20a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error [0.271874s] ... ok
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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_173_owner_admin_can_set_raid_config [0.110306s] ... 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-5d3145cd-d9b2-4da3-ac44-d9a9dbf3323d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_232_drivers_vendor_passthru_put_observer [0.216405s] ... 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-c99c2883-9cf3-4b7c-965f-57729dec8c1e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_109_nodes_management_indicators_get_observer [0.114476s] ... 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-7f1484a2-cb3f-4e1d-ba26-33fb2368e924
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_174_owner_manager_can_set_raid_config [0.078887s] ... 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-64c74cf6-0153-4f0b-99aa-ff3d3c83bb28
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing
{3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error [0.169029s] ... ok
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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_110_nodes_management_indicators_component_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_175_lessee_admin_cannot_set_raid_config [0.113055s] ... 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-0e4fa8bc-587f-4154-ad3e-a12156139ecf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state [0.111390s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_111_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_176_lessee_manager_cannot_set_raid_config [0.107541s] ... 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-40eb131e-fa10-4259-a779-86d45309f885
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_112_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing
{3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected [0.199886s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_177_owner_member_can_set_raid_config [0.170858s] ... 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-a1cef965-f2cf-4d70-838a-8823b8be3edf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_113_portgroups_get_admin [0.109471s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b60a9d25-edcb-49e5-89c7-fbed0635358e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_178_service_owner_can_set_raid_config [0.077795s] ... 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-735ce31d-1074-4817-b4e9-e92e1b3f1ced
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_235_nodes_bios_get_admin [0.127640s] ... 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-c41de354-c37b-4a54-b39b-298c79facf33
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"bios": [{"created_at": "2025-05-29T16:56:52.631954+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail [0.142828s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_114_portgroups_get_member [0.158470s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-83059ee8-5285-4b65-9688-2aaed845d931
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_179_lessee_member_cannot_set_raid_config [0.099866s] ... 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-aa48480e-7f67-48dd-93fd-2f3f3abca331
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_236_nodes_bios_get_member [0.079012s] ... 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-d252116a-3c3e-4c90-b1a8-a14d10f5680b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_115_portgroups_get_observer [0.095710s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-44c3faa3-cba8-48f0-a77d-1eee02a80f38
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_get_observer [0.087133s] ... 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-38ba326f-ebb8-40ce-90b9-e83f8237b8ee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"bios": [{"created_at": "2025-05-29T16:56:52.831821+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full [0.201727s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACModelBeforeScopes.test_rbac_legacy_238_nodes_bios_bios_setting_get_admin [0.090310s] ... 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-15dd510c-0d73-496c-aaba-b3fbde4001e7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"FAKE_SETTING": {"created_at": "2025-05-29T16:56:52.912104+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.TestRBACScoped.test_rbac_legacy_116_portgroups_post_admin [0.120800s] ... 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-77a0fc50-0151-4a2e-a371-2c247c21737f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_239_nodes_bios_bios_setting_get_member [0.081679s] ... 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-7b561122-65ed-4875-a96c-d5ef108123d4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_117_portgroups_post_member [0.119101s] ... 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-82fc390b-b7d3-4d65-88e4-41725a13982a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean [0.181622s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACModelBeforeScopes.test_rbac_legacy_240_nodes_bios_bios_setting_get_observer [0.103969s] ... 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-9511fca4-cbe5-4070-9610-9de1e87794d5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"FAKE_SETTING": {"created_at": "2025-05-29T16:56:53.111436+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.TestRBACScoped.test_rbac_legacy_118_portgroups_post_observer [0.101779s] ... 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-9ddec8f9-ba9c-4aab-bcde-50acaf92df1e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_241_conductors_get_admin [0.113279s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-19f6d6e8-7c3d-41c9-93d9-e783dd738ae6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_180_third_party_admin_cannot_set_raid_config [0.517944s] ... 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-5a620db7-f7a6-42bf-a7c9-033b8125c999
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_119_portgroups_detail_get_admin [0.103002s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f3bb2183-c3f8-4088-a39a-097419274597
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_member [0.101532s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-dd738a2b-343d-4296-af00-f6e28d068831
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_181_service_cannot_set_raid_config [0.092561s] ... 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-98f645d7-1e53-437e-84ed-5c48989707b7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_120_portgroups_detail_get_member [0.115483s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b166e748-d428-4a7b-9623-42d0be456b3b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_243_conductors_get_observer [0.113096s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8725df11-b3d3-4a8b-9654-a36daf5719de
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_182_owner_admin_can_get_console [0.103496s] ... 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-ceff7627-f248-4153-9536-89b9e189b859
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_121_portgroups_detail_get_observer [0.098158s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-cad998c1-940f-4197-8882-95a0763f7f05
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_122_portgroups_portgroup_ident_get_admin [0.085268s] ... 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-814cb38d-d6d0-4b39-92f1-28ac0624fc8c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_244_conductors_hostname_get_admin [0.183935s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d12bd57d-faff-47a7-8661-fb7c9bcfeeea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:56:53.584218+00:00", "updated_at": "2025-05-29T16:56:53.586988+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_183_owner_manager_can_get_console [0.184061s] ... 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-40a76e33-6d87-447c-bef2-d8ce1ae2fab7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_123_portgroups_portgroup_ident_get_member [0.096972s] ... 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-06872976-f9f3-427e-893e-1d67cf2c9d85
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_member [0.177208s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-58dee7fb-dc76-44d6-b52d-0107162c8e4e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_184_owner_service_can_get_console [0.179626s] ... 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-bfb39a3a-9550-4f90-b93f-862821375327
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable [0.752482s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_automated_clean [0.108927s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_185_lessee_admin_cannot_get_console [0.131945s] ... 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-f0435a77-449d-4fbc-9e8f-90bc5ef68dfb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_246_conductors_hostname_get_observer [0.172976s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ba93f037-4948-46b0-8626-c41ad9b5b226
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:56:53.942871+00:00", "updated_at": "2025-05-29T16:56:53.949721+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_manual_clean [0.102516s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_186_lessee_manager_cannot_get_console [0.112352s] ... 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-89197552-6421-41ed-b408-5f335387b849
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_187_owner_member_can_get_console [0.082611s] ... 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-4d402f93-6758-41f7-9956-46e57cac9750
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_from_deployhold [0.107715s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACModelBeforeScopes.test_rbac_legacy_247_allocations_post_admin [0.206423s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-7c98072e-9d61-41c9-af98-65b5b69905a3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_188_lessee_member_cannot_get_console [0.114550s] ... 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-18fb6887-047c-47be-928b-415bab8df1ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean [0.111861s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_124_portgroups_portgroup_ident_get_observer [0.572154s] ... 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-7094911c-c23a-4efb-9290-286fc7fd5345
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_248_allocations_post_member ... SKIPPED: This endpoint's behavior supports allocation creation as a member with the new Role Based Access Control changes. Thus this test cannot both ensure prior and post-change behavior as it is actually valid moving forward.
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_189_owner_reader_cannot_get_console [0.076867s] ... 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-7df0b2d0-96b6-4633-a369-c78ce904d894
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage [0.117415s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_190_lessee_reader_cannot_get_console [0.089502s] ... 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-ec46b1ee-cfa9-4896-8cea-ded43ad220ee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_125_portgroups_portgroup_ident_patch_admin [0.166184s] ... 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-863b382c-f5e0-448d-9528-6423b8e21bcb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_191_third_party_admin_cannot_get_console [0.080933s] ... 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-9d4f4f6d-749d-4ebe-b7a0-76344beb9e86
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide [0.151409s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACModelBeforeScopes.test_rbac_legacy_249_allocations_post_observer [0.205252s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-effd81be-7b6c-4a22-a081-d51157c405bc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_192_owner_admin_can_set_console [0.094281s] ... 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-aaa00164-eb75-4f5e-90a8-11ac607d11d2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_193_owner_manager_can_set_console [0.084115s] ... 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-0228cc59-ec2b-4050-87bd-0ea091ec3138
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_member [0.257333s] ... 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-864264ba-f824-4e75-af96-c5d937152bc1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_194_lessee_admin_cannot_set_console [0.086709s] ... 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-269f8594-6931-4360-a15b-a8fb09f10aa2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance [0.231260s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACModelBeforeScopes.test_rbac_legacy_250_allocations_get_admin [0.246449s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-28dd5328-da49-4ca0-827b-1740be8f8e3f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "956c6e92-db18-46bc-8fd4-8117e1e671cb", "created_at": "2025-05-29T16:56:54.685763+00:00", "updated_at": "2025-05-29T16:56:54.696088+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/956c6e92-db18-46bc-8fd4-8117e1e671cb", "rel": "self"}, {"href": "http://localhost/allocations/956c6e92-db18-46bc-8fd4-8117e1e671cb", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_195_lessee_manager_cannot_set_console [0.076386s] ... 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-34ff248f-6c74-4db7-9635-6908487f9091
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_251_allocations_get_member [0.076647s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e8b9017e-b3fd-40ff-9f9a-49a5eb906d8e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_127_portgroups_portgroup_ident_patch_observer [0.197177s] ... 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-44080866-d8ba-40b6-8c31-09dbaad1089d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_196_owner_member_can_set_console [0.067553s] ... 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-0d08a5a5-a6fc-4686-8090-83c8d756b6fe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_get_observer [0.111527s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fe718bd3-9b1f-42e6-b30b-961662fe180d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "3c015330-de1a-4221-9e4b-e91568027337", "created_at": "2025-05-29T16:56:54.924691+00:00", "updated_at": "2025-05-29T16:56:54.929711+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/3c015330-de1a-4221-9e4b-e91568027337", "rel": "self"}, {"href": "http://localhost/allocations/3c015330-de1a-4221-9e4b-e91568027337", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{3} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full [0.230317s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_197_lessee_member_cannot_set_console [0.111253s] ... 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-c89d0ad9-dd0b-4b67-b387-1a2bb92c17e4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_128_portgroups_portgroup_ident_delete_admin [0.178188s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a1a986f1-aba3-4ef4-865a-114a8999ffcd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_253_allocations_allocation_id_get_admin [0.118215s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/18633020-c8dd-4710-bf1d-0e6b6e96f4f3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ae59b5e1-0d3b-4c21-8cdd-cb359265cf01
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "18633020-c8dd-4710-bf1d-0e6b6e96f4f3", "created_at": "2025-05-29T16:56:55.067487+00:00", "updated_at": "2025-05-29T16:56:55.071609+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/18633020-c8dd-4710-bf1d-0e6b6e96f4f3", "rel": "self"}, {"href": "http://localhost/allocations/18633020-c8dd-4710-bf1d-0e6b6e96f4f3", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{3} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_indicator_state [0.096182s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_198_owner_service_can_set_console [0.118310s] ... 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-423a55b6-c782-442a-b880-4fb6b5d03d19
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_254_allocations_allocation_id_get_member [0.080861s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/b1ac6343-c57b-4aa8-b5df-d91d7d2e0776 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8f550514-5323-4b67-8ec1-1c835e2a44b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation b1ac6343-c57b-4aa8-b5df-d91d7d2e0776 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators [0.095065s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_129_portgroups_portgroup_ident_delete_member [0.158963s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2627e5c0-9708-4eb1-8320-cf32ac0cf135
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_199_service_cannot_set_console [0.102250s] ... 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-ad828b2d-f295-45ca-933a-e5dbbcee394b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state [0.107300s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_130_portgroups_portgroup_ident_delete_observer [0.071492s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-eacd0281-8d40-4926-9c50-49aa34ea1956
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_255_allocations_allocation_id_get_observer [0.150448s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/c278e6e2-e6b0-4c73-ad8a-764f70add921 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-96ecd3e0-f896-4a87-8bff-7fc0512701f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "c278e6e2-e6b0-4c73-ad8a-764f70add921", "created_at": "2025-05-29T16:56:55.257814+00:00", "updated_at": "2025-05-29T16:56:55.261996+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/c278e6e2-e6b0-4c73-ad8a-764f70add921", "rel": "self"}, {"href": "http://localhost/allocations/c278e6e2-e6b0-4c73-ad8a-764f70add921", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_200_owner_admin_cannot_get_vendor_passthru_methods [0.092829s] ... 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-d11b7e09-8576-42c6-bfd7-cea31a9771d2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout [0.051014s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_131_nodes_portgroups_get_admin [0.081318s] ... 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-09224c02-e448-4438-8d5a-3dbadb728457
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears [0.060162s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_201_owner_manager_cannot_get_vendor_passthru_methods [0.112993s] ... 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-0e907ef1-40ed-4318-acfb-73bc942a149a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_132_nodes_portgroups_get_member [0.097889s] ... 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-a79d8a71-b74e-488a-a9ea-7a029cf6eb00
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked [0.075630s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_202_owner_service_cannot_get_vendor_passthru_methods [0.073802s] ... 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-f1ee9887-d787-4e6e-af94-4bd370a02f65
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_256_allocations_allocation_id_patch_admin [0.233445s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/b215ac1e-bae8-46db-9eab-96e7d9c96ca6 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bc356b42-e522-4cc1-abe1-4f2a6444a066
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "b215ac1e-bae8-46db-9eab-96e7d9c96ca6", "created_at": "2025-05-29T16:56:55.415794+00:00", "updated_at": "2025-05-29T16:56:55.576750+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/b215ac1e-bae8-46db-9eab-96e7d9c96ca6", "rel": "self"}, {"href": "http://localhost/allocations/b215ac1e-bae8-46db-9eab-96e7d9c96ca6", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception [0.079342s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_133_nodes_portgroups_get_observer [0.089128s] ... 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-f7354e47-6535-402e-805b-ae7c041a7281
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail [0.057689s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_203_owner_member_cannot_get_vendor_passthru_methods [0.107870s] ... 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-c9ed4c55-de9a-4fa8-b350-9e2d4ec1cfcd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_134_nodes_portgroups_detail_get_admin [0.082127s] ... 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-96760fa7-da78-42c0-9e66-31ecd010739c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock [0.068428s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_257_allocations_allocation_id_patch_member [0.168891s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/892d4c39-f3bf-45cd-a6d3-7e9ade5b8a00 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-85c85b6b-b688-400c-a53b-1bb652177821
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 892d4c39-f3bf-45cd-a6d3-7e9ade5b8a00 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped [0.058271s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_135_nodes_portgroups_detail_get_member [0.106774s] ... 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-70f3b3e0-e593-405c-a57f-3818451c4d6d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_204_owner_reader_cannot_get_vendor_passthru_methods [0.140346s] ... 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-2551f9cf-f957-405f-8953-15036ad6e241
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock [0.060170s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_136_nodes_portgroups_detail_get_observer [0.101308s] ... 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-ef42ae67-d6dc-40f8-b2cb-fcfdcdacdc80
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit [0.058006s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_patch_observer [0.153413s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/c9239e2b-88b0-41a3-ba47-94050c922b42 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6c3473fc-62b5-4f1c-9082-cd0b80028f29
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_205_lessee_admin_cannot_get_vendor_passthru_methods [0.144435s] ... 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-a9e2c481-03d1-4613-a4c4-789bb42fb9ef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire [0.054144s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_137_ports_get_admin [0.070954s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c425b7f8-0a72-4262-b22b-a80cd08e2462
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire [0.065256s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire [0.025527s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_259_allocations_allocation_id_delete_admin [0.137009s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/8c34e608-6666-4bc8-a348-8c967ed0d228 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-99c715a9-ffd4-4a24-827d-012c9d25443e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_138_ports_get_member [0.082979s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c0f33990-e2b8-4760-acdf-29b1fefb0c92
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire [0.030060s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_206_lessee_manager_cannot_get_vendor_passthru_methods [0.143210s] ... 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-67c390a9-c95b-481e-9985-9c7b135ecd9b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire [0.027945s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped [0.024567s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_139_ports_get_observer [0.085003s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-692442a5-0ca2-4483-a312-ab6c1bd178ad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed [0.035496s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_260_allocations_allocation_id_delete_member [0.118579s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/5ec28a3d-3929-42d9-bf5e-a4958742dc40 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-af7892fc-39d4-4d28-845d-4b2458d9a063
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 5ec28a3d-3929-42d9-bf5e-a4958742dc40 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success [0.027147s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_207_lessee_member_cannot_get_vendor_passthru_methods [0.112755s] ... 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-96ecdadf-f623-41d9-848d-f01ff915ef8f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_140_ports_post_admin [0.095069s] ... 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-c0c9c1f1-fede-4b25-8174-fd96c0769141
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail [0.067904s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_261_allocations_allocation_id_delete_observer [0.140203s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/6f0d5351-8b3d-4265-8e82-6cade77ddf5a GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7e167c17-ffbe-41b8-b976-43c67e15cf1a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo [0.104474s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_208_lessee_reader_cannot_get_vendor_passthru_methods [0.170239s] ... 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-17a9ebeb-4d88-4029-a263-d6d52f28e627
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_141_ports_post_member [0.163802s] ... 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-0c37e334-dad0-4152-8327-d1be39f8fdeb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_209_owner_admin_cannot_get_vendor_passthru [0.116782s] ... 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-3a7fd1ff-7854-4261-8bb3-4fad235074fd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi [0.149219s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_142_ports_post_observer [0.112014s] ... 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-cbca3d51-53db-4af9-8078-2c2965fe7341
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_210_owner_manager_cannot_get_vendor_passthru [0.074552s] ... 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-04fd03df-43ba-4480-8627-0febe356acbb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_262_nodes_allocation_get_admin [0.284022s] ... 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-0a69d4ea-0d9a-441c-a5f7-a9cd288c01ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "292f8e31-9eda-4261-8e07-ba2d0187e524", "created_at": "2025-05-29T16:56:56.447527+00:00", "updated_at": "2025-05-29T16:56:56.463586+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/292f8e31-9eda-4261-8e07-ba2d0187e524", "rel": "self"}, {"href": "http://localhost/allocations/292f8e31-9eda-4261-8e07-ba2d0187e524", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{3} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_manual_management [0.075838s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_143_ports_detail_get_admin [0.100551s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-10fe720d-8580-43cf-ad9c-53a368e935e2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_member [0.083462s] ... 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-4bf0bb2f-b127-443d-9a1c-1e2dd76f25a9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_211_owner_service_cannot_get_vendor_passthru [0.132985s] ... 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-5000797a-e796-4dab-a26a-7324b550a874
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp [0.115238s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_264_nodes_allocation_get_observer [0.094036s] ... 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-61e83283-a786-49ff-b027-8b7dec11ddc8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "a869c892-69d0-49e7-8bef-714858d342e4", "created_at": "2025-05-29T16:56:56.721530+00:00", "updated_at": "2025-05-29T16:56:56.725440+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/a869c892-69d0-49e7-8bef-714858d342e4", "rel": "self"}, {"href": "http://localhost/allocations/a869c892-69d0-49e7-8bef-714858d342e4", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_212_owner_member_cannot_get_vendor_passthru [0.097162s] ... 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-9ce513ba-17a9-4b56-982f-c30647a8e089
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor [0.107697s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_144_ports_detail_get_member [0.207332s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2ba5d162-e139-4808-a50d-c047fa765bb4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_265_nodes_allocation_delete_admin [0.102760s] ... 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-2774d42e-8241-439f-84c2-93fe3547f8dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_145_ports_detail_get_observer [0.103989s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-61e7a5c2-84b7-402e-9bd9-eacad3ac223d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_266_nodes_allocation_delete_member [0.089927s] ... 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-3b89fe4b-7c79-45b7-b270-4bc4ad935235
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_146_ports_port_id_get_admin [0.097926s] ... 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-a412a834-5864-46c0-b527-20d16a6db125
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_get_node_with_token [0.307997s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_147_ports_port_id_get_member [0.091683s] ... 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-e6db7de0-ebcd-41aa-af4b-28c7e0f51388
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_213_owner_reader_cannot_get_vendor_passthru [0.346813s] ... 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-8c6bef64-b6c0-4b4d-9603-5c7459b1a549
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes [0.074480s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_267_nodes_allocation_delete_observer [0.245366s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1e020f58-3f3d-4887-9ec5-7f0369be3465
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_148_ports_port_id_get_observer [0.090381s] ... 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-e94bedc8-8a27-4f2f-bfdf-61c4d4382d14
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_214_lessee_admin_cannot_get_vendor_passthru [0.102851s] ... 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-4e2503a7-091f-44d8-a871-4048db440d62
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_149_ports_port_id_patch_admin [0.103197s] ... 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-b5a6a143-5f09-482e-a37d-13db1e39cf60
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown [0.150397s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_268_deploy_templates_post_admin [0.156999s] ... 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/69bbed19-b81c-447f-86ac-3037eb87187d
Openstack-Request-Id: req-2aa9efb8-f0ec-423b-983e-278cbf3d282b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "69bbed19-b81c-447f-86ac-3037eb87187d", "created_at": "2025-05-29T16:56:57.372017+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/69bbed19-b81c-447f-86ac-3037eb87187d", "rel": "self"}, {"href": "http://localhost/deploy_templates/69bbed19-b81c-447f-86ac-3037eb87187d", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_215_lessee_manager_cannot_get_vendor_passthru [0.162453s] ... 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-d45fd660-370e-4237-870f-3f573596fac3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_150_ports_port_id_patch_member [0.097367s] ... 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-df9b1efe-06da-4515-bf1b-03b0f649ebd1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_node_with_token_already_locked [0.086013s] ... ok
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_node_with_token_already_set [0.055574s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_216_lessee_member_cannot_get_vendor_passthru [0.110063s] ... 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-e407d768-af36-4df3-a19d-2c3d6cc57a75
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail [0.040584s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_151_ports_port_id_patch_observer [0.138534s] ... 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-56bbd434-7b16-43bc-b688-cfd0e6288a03
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates [0.037658s] ... ok
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits [0.053999s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_217_lessee_reader_cannot_get_vendor_passthru [0.102055s] ... 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-f5fd646f-986d-4694-a0e3-e2d94afa3807
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected [0.053746s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_152_ports_port_id_delete_admin [0.144075s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-57f05f0e-4e21-4d18-9e31-cc2f0b0bd4f0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_218_owner_admin_cannot_post_vendor_passthru [0.110891s] ... 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-746dea43-bac7-4c68-a277-1c4a5fe3613a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces [0.085388s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers [0.045103s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_153_ports_port_id_delete_member [0.103754s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4ab5beda-bd48-435d-a70e-880bd38285d5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_219_owner_manager_cannot_post_vendor_passthru [0.093295s] ... 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-f2ed7c50-4531-4dab-ba70-0de02346dfaa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers [0.071322s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_269_deploy_templates_post_member [0.521862s] ... 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-3e71a1a7-3e76-4926-a519-3b8931079927
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker [0.044336s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_154_ports_port_id_delete_observer [0.134997s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-511cc158-d3ef-47b7-8943-f06d3753b3c0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers [0.026220s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization [0.043469s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_220_owner_service_cannot_post_vendor_passthru [0.164179s] ... 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-9b833b05-0dbe-46e7-8c71-263c9f9a369c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_155_nodes_ports_get_admin [0.084236s] ... 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-59c0ce4b-5127-4500-80cc-981e9ae6a728
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_270_deploy_templates_post_observer [0.185718s] ... 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-d3bd4ee0-215e-4f44-b846-51093818fa58
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state [0.082449s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_156_nodes_ports_get_member [0.097702s] ... 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-6a605ec2-3eb5-4e52-ba64-3a0df15bfc89
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_221_owner_member_cannot_post_vendor_passthru [0.180382s] ... 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-42e0e6f5-94f6-4b30-b866-a37695847b90
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance [0.114555s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_157_nodes_ports_get_observer [0.088584s] ... 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-e35e9da7-6038-45d2-b87b-bdfdea19ddb3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_271_deploy_templates_get_admin [0.153022s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-69bb12f9-a8d6-4b22-a352-57da8c277b71
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "b9e0c150-18f1-4b16-8360-b1ad98a32eac", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/b9e0c150-18f1-4b16-8360-b1ad98a32eac", "rel": "self"}, {"href": "http://localhost/deploy_templates/b9e0c150-18f1-4b16-8360-b1ad98a32eac", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_158_nodes_ports_detail_get_admin [0.086941s] ... 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-40a6c080-3512-4711-9a90-2c81dab1408e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_272_deploy_templates_get_member [0.082927s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d03a7df3-8c2c-495a-bd63-c1415ea654a3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok [0.130637s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_222_owner_reader_cannot_post_vendor_passthru [0.150903s] ... 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-b863d456-6f4c-4942-9370-c552ed9a1c7c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_273_deploy_templates_get_observer [0.104519s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-547c8b2a-7857-409e-bd7e-c8e3ada5277a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "3ea1779f-7bf3-4544-a47c-8df5b5e1d892", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/3ea1779f-7bf3-4544-a47c-8df5b5e1d892", "rel": "self"}, {"href": "http://localhost/deploy_templates/3ea1779f-7bf3-4544-a47c-8df5b5e1d892", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail [0.101875s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_223_lessee_admin_cannot_post_vendor_passthru [0.099703s] ... 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-d6261663-5c11-4eec-95f5-2fc536b4c0b8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_admin [0.093143s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/7c65122d-8aac-43ca-9ade-6c1b46a1c1c8 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cb923828-cf39-49ac-a8ca-65413fc7d6cf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "7c65122d-8aac-43ca-9ade-6c1b46a1c1c8", "created_at": "2025-05-29T16:56:58.467426+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/7c65122d-8aac-43ca-9ade-6c1b46a1c1c8", "rel": "self"}, {"href": "http://localhost/deploy_templates/7c65122d-8aac-43ca-9ade-6c1b46a1c1c8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_224_lessee_manager_cannot_post_vendor_passthru [0.140068s] ... 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-c1f49d69-dc2c-462c-b494-e28a57abfa8f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done [0.169456s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_member [0.079491s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/a8c7a186-cc60-4812-a30c-4768cd6572ed WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-02fbd690-6535-424b-adab-7b415e50e54e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_276_deploy_templates_deploy_template_id_get_observer [0.076820s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/3aa8bccf-3bdb-4508-904f-6f81931d117c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e8c970a4-3b7b-45be-850f-9d2520785f22
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "3aa8bccf-3bdb-4508-904f-6f81931d117c", "created_at": "2025-05-29T16:56:58.654706+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/3aa8bccf-3bdb-4508-904f-6f81931d117c", "rel": "self"}, {"href": "http://localhost/deploy_templates/3aa8bccf-3bdb-4508-904f-6f81931d117c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_225_lessee_member_cannot_post_vendor_passthru [0.117318s] ... 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-74237fd2-4fb6-456c-979e-6c4211e7c61c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_159_nodes_ports_detail_get_member [0.455878s] ... 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-6e2b2164-6591-4457-9cb6-158e886fc696
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_admin [0.123588s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/5e1f46db-c74d-4689-a143-4d1960a56a68 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f32d070c-ac62-4c13-b3cb-c64509590783
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "5e1f46db-c74d-4689-a143-4d1960a56a68", "created_at": "2025-05-29T16:56:58.741863+00:00", "updated_at": "2025-05-29T16:56:58.804087+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/5e1f46db-c74d-4689-a143-4d1960a56a68", "rel": "self"}, {"href": "http://localhost/deploy_templates/5e1f46db-c74d-4689-a143-4d1960a56a68", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_226_lessee_reader_cannot_post_vendor_passthru [0.183166s] ... 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-6292a72c-9b78-48d0-9e46-caf019235947
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_member [0.090677s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/2e514885-6e74-4403-bef2-789a8e74ac3a WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-316a199c-3820-43d9-9bef-84d4129e5791
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error [0.301106s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_160_nodes_ports_detail_get_observer [0.173903s] ... 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-be19466e-6f5e-4b1c-a4a6-045e499a1a61
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_patch_observer [0.086578s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/ae289dc9-5a6c-47eb-aba3-3fdf7889571c WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7d84874b-9964-4047-b491-0814f5536034
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_227_owner_admin_cannot_put_vendor_passthru [0.136940s] ... 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-7715b2eb-3017-4eb9-a02e-5ba06e08f534
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_161_portgroups_ports_get_admin [0.116969s] ... 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-3b128693-8fea-47f9-98a0-b807bccdec72
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_228_owner_manager_cannot_put_vendor_passthru [0.107496s] ... 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-48d4bdcb-28a8-4fdf-ad17-579c4124bfee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_162_portgroups_ports_get_member [0.085807s] ... 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-c438c09f-4adb-4a6c-a51e-cd95b600af3a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_admin [0.178704s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/ea7bfaa9-813a-4a56-99f8-7bdb808d0b3f GOT Response: 204 No Content
Openstack-Request-Id: req-a8c6f79c-68ce-490d-bfce-dafb00f723e4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting [0.274725s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_229_owner_service_cannot_put_vendor_passthru [0.081732s] ... 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-c275ce80-9322-4149-9330-41f904c00dc7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_163_portgroups_ports_get_observer [0.108736s] ... 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-cc764184-036d-4380-b20c-f8d5b0f8e5d2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_230_owner_member_cannot_put_vendor_passthru [0.075341s] ... 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-f5c5c008-4731-4f9a-be91-2e13dfe834df
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_member [0.125448s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/0e9c48a7-d537-4ad0-b0e5-2ec9cc83e3ae GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9853465a-9e39-4644-b81c-9d712672c46d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_164_portgroups_ports_detail_get_admin [0.108484s] ... 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-7403f04b-9a0a-4cb5-9fc5-e6c4dca654f7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_231_owner_reader_cannot_put_vendor_passthru [0.094107s] ... 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-bdd67685-9b8f-4a58-ae08-e9e1a1a3c657
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_282_deploy_templates_deploy_template_id_delete_observer [0.110321s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/f9c9e606-40db-496e-ae0b-0418016ff28c GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c7c542b8-9df5-4d31-81f8-0aee301951ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state [0.252398s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_232_lessee_admin_cannot_put_vendor_passthru [0.087143s] ... 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-20d5fe5e-1fde-4aa8-9b9f-41f6b24eacb6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_165_portgroups_ports_detail_get_member [0.098453s] ... 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-f10ee500-6ae3-4966-bd57-f1eefc79c81a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_283_chassis_post_admin [0.106370s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/chassis/d9a83945-d3cb-4805-91d3-cafb269c2d62
Openstack-Request-Id: req-1e478e6e-7fbe-4769-a8e7-f53d22f663f8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d9a83945-d3cb-4805-91d3-cafb269c2d62", "created_at": "2025-05-29T16:56:59.507480+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/d9a83945-d3cb-4805-91d3-cafb269c2d62", "rel": "self"}, {"href": "http://localhost/chassis/d9a83945-d3cb-4805-91d3-cafb269c2d62", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/d9a83945-d3cb-4805-91d3-cafb269c2d62/nodes", "rel": "self"}, {"href": "http://localhost/chassis/d9a83945-d3cb-4805-91d3-cafb269c2d62/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_166_portgroups_ports_detail_get_observer [0.088463s] ... 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-8ef569e4-2a62-4f13-a9a7-cf35d70b56bb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state [0.203599s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_167_volume_get_admin [0.124206s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1b913f87-c7d9-40e4-8932-ede17350803a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_233_lessee_manager_cannot_put_vendor_passthru [0.239553s] ... 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-725df7c7-20d2-4074-b4b4-882c96514786
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state [0.094528s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACModelBeforeScopes.test_rbac_legacy_284_chassis_post_member [0.246362s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ec9410d1-68bd-432f-a6c4-6978821bb506
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_168_volume_get_member [0.069898s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-abe83656-c802-40f5-a709-e809979ed648
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected [0.098462s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_169_volume_get_observer [0.095665s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ec78ffca-d8a4-441a-8bb6-46be5737919e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_234_lessee_member_cannot_put_vendor_passthru [0.205726s] ... 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-f469c570-b542-48d0-aedb-9cd0ed89c895
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_170_volume_connectors_get_admin [0.073703s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-123fd843-e868-45d8-a13e-5fd3e019e6a2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_285_chassis_post_observer [0.210795s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e0c4b8a2-9844-40c5-8e1b-35699bcc7fa7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail [0.154309s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_171_volume_connectors_get_member [0.073741s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-887c0dd4-59b5-4f15-807b-ebb2d0c664f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_172_volume_connectors_get_observer [0.097325s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7b2b1060-becf-4c97-9cf1-cab8912a589f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_286_chassis_get_admin [0.160210s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7f50ffc4-5a44-46ee-a967-1ab82556a30a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_235_lessee_reader_cannot_put_vendor_passthru [0.215895s] ... 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-135aa9dd-e8b7-4846-92e4-e6a469c54907
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_173_volume_connectors_post_admin [0.092461s] ... 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-bfa8cf37-1625-451d-a28b-ba27c354ac50
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_287_chassis_get_member [0.095250s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8af551d9-3a9d-412e-8788-a2d522c4f811
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail [0.254203s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_236_owner_admin_cannot_delete_vendor_passthru [0.126355s] ... 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-0074a092-3236-4ef8-b25a-5e66514b95a4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_member [0.106482s] ... 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-d792bfd4-37eb-4630-aa82-b1a0907ac904
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_237_owner_manager_cannot_delete_vendor_passthru [0.082722s] ... 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-425ccf3e-e318-4c4d-a874-89c6176acfb7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_288_chassis_get_observer [0.150690s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8436c490-d9e8-424d-b606-66ce5563f670
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_238_owner_service_cannot_delete_vendor_passthru [0.086975s] ... 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-f0b20635-b35f-4ef9-81ba-96e4d9a9dc89
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail [0.191663s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_175_volume_connectors_post_observer [0.150398s] ... 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-70393a07-a27a-44e6-a3ba-db2380767d9d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_289_chassis_detail_get_admin [0.125562s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-520557fc-424b-4a95-ba1e-3b307a02990a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:57:00.459372+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_239_owner_member_cannot_delete_vendor_passthru [0.087399s] ... 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-be7d216b-40b6-4f27-96d6-40a4cfb44475
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_admin [0.115745s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/a29a8584-ad4f-42e8-9eda-123c997360a8 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d3c5eab5-be0f-464d-9bc5-1967475c5783
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector a29a8584-ad4f-42e8-9eda-123c997360a8 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_member [0.088521s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a66b5bf8-5520-400a-8cd7-18a4dfed81e9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full [0.167783s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_240_owner_reader_cannot_delete_vendor_passthru [0.082563s] ... 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-cf4b004e-f36e-4df7-b1b6-ac0e0f6982fd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_177_volume_volume_connector_id_get_member [0.097518s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/c61d0f49-a032-4647-a5e4-c130bda6dde2 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b92a6766-f06e-4b32-9116-b99cfbf77b3b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector c61d0f49-a032-4647-a5e4-c130bda6dde2 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_291_chassis_detail_get_observer [0.085007s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-768165d7-9dd5-44de-ac7b-b96df2cfadb3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:57:00.647797+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_178_volume_volume_connector_id_get_observer [0.104872s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/3b780a10-e2f1-4562-9245-a016d7e56af0 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3db31849-0d94-4182-b9d0-1551261932c5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 3b780a10-e2f1-4562-9245-a016d7e56af0 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_292_chassis_chassis_id_get_admin [0.102328s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-416fd0f8-3d25-457b-b08e-4e2afea3d459
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:57:00.742809+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_241_lessee_admin_cannot_delete_vendor_passthru [0.208595s] ... 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-4e4766f7-199e-425d-b78b-a4d253c5cbbe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_293_chassis_chassis_id_get_member [0.075185s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a0a2496d-42ba-468b-85f4-b472fe69e600
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_179_volume_volume_connector_id_patch_admin [0.143648s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/f817eade-1d76-4728-9d97-94ddcb15783c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4720c0ec-8812-4295-81ac-46772f1d7e45
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector f817eade-1d76-4728-9d97-94ddcb15783c could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port [0.317664s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_294_chassis_chassis_id_get_observer [0.079392s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6a1ade4f-bc54-4da3-a860-191835900415
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:57:00.903770+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_242_lessee_manager_cannot_delete_vendor_passthru [0.120448s] ... 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-31e47b41-50e0-4f6f-9f69-ed8700188fd6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node [0.079994s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_180_volume_volume_connector_id_patch_member [0.097442s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/ea7557f5-a76d-4611-abe1-590cc10b2566 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-7acc1a2b-eb71-4053-bac8-604513ffaa6d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector ea7557f5-a76d-4611-abe1-590cc10b2566 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_295_chassis_chassis_id_patch_admin [0.092483s] ... 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-3d936641-1cc9-4e67-89b9-6f6a95232c64
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:57:00.976645+00:00", "updated_at": "2025-05-29T16:57:01.024599+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_243_lessee_member_cannot_delete_vendor_passthru [0.102947s] ... 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-545bdb76-2d17-4f5c-8053-82433fb5b7f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance [0.070149s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_296_chassis_chassis_id_patch_member [0.074643s] ... 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-e79fc4dd-7790-4762-86a2-51ff52047700
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_244_lessee_reader_cannot_delete_vendor_passthru [0.069299s] ... 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-01bd22fc-a0d5-4d32-a800-58f43f0c991d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_181_volume_volume_connector_id_patch_observer [0.133924s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/07ea4867-5154-47cc-85ed-71c91fb010f4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6298bebc-da25-4ec6-ae48-00337d586a6d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 07ea4867-5154-47cc-85ed-71c91fb010f4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance [0.069553s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_297_chassis_chassis_id_patch_observer [0.088664s] ... 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-a107c754-8f3d-4f5d-b0b6-0eacd97fd4b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state [0.080822s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_298_chassis_chassis_id_delete_admin [0.099743s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content
Openstack-Request-Id: req-4d5d6fec-65f4-46b6-a10c-e8fa6aafb078
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked [0.077358s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_245_owner_reader_get_traits [0.230374s] ... 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-7f65f194-3de7-46c0-a3b6-63ebb8959706
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"traits": []}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_182_volume_volume_connector_id_delete_admin [0.216632s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/dada6aea-d41b-4d4a-8663-0376505501b1 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-57060017-55b3-497a-93a1-708c559b9dfd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector dada6aea-d41b-4d4a-8663-0376505501b1 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state [0.063759s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_maintenance [0.079047s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_246_owner_reader_get_traits_service [0.136956s] ... 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-33c4f2d0-4e6a-41bf-8da4-e1193c31afed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"traits": []}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_183_volume_volume_connector_id_delete_member [0.150475s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/f57fb737-33b9-4210-bc33-ad01ee755ea3 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-fe293aa7-b188-4d09-a42d-fa7b8e84c48f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector f57fb737-33b9-4210-bc33-ad01ee755ea3 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state [0.058894s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.057681s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_184_volume_volume_connector_id_delete_observer [0.117623s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/05578099-d00a-452c-86b1-248e721a7647 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d1008dab-3f15-4999-8c89-00c9e4601cf5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 05578099-d00a-452c-86b1-248e721a7647 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent [0.081184s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_185_volume_targets_get_admin [0.117042s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-29232825-686e-4d1a-ab1b-7ace722d709e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure [0.102125s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_247_lessee_reader_get_traits [0.329951s] ... 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-c5452a6a-2a65-49b0-931a-259e8965b617
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"traits": []}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_186_volume_targets_get_member [0.114054s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e10b6da8-fc0c-4594-8b4f-f327319189c1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node [0.088843s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_299_chassis_chassis_id_delete_member [0.576156s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-45dae4bf-d6e6-4e3d-a59f-36c8951558f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_248_third_party_admin_cannot_get_traits [0.136981s] ... 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-7cc5ebe2-e647-4cda-bdf3-c45f60de8e87
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_300_chassis_chassis_id_delete_observer [0.094839s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-440ff3fa-fa8c-42c3-90a6-52f9443afd5b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node [0.110831s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_187_volume_targets_get_observer [0.142556s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7ac888d9-f040-4590-9c2e-a76ac20da5ee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_249_owner_admin_can_put_traits [0.130122s] ... 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-1719e69b-657c-4dff-82c8-56964f5aa37e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_301_node_history_get_admin [0.098215s] ... 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-a120e8ad-3c0e-4064-b148-3b93f6ec04b4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"history": [{"uuid": "b80ba249-bee9-4417-80b7-cb24c6f3fc28", "created_at": "2025-05-29T16:57:02.055098+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b80ba249-bee9-4417-80b7-cb24c6f3fc28", "rel": "self"}]}]}
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state [0.105591s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.072806s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_188_volume_targets_post_admin [0.165152s] ... 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-73431afb-e62a-417f-9b47-da45c102660d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_302_node_history_get_member [0.129495s] ... 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-a4338859-6fb2-4d65-8b9d-9ec0ee435087
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_250_owner_manager_can_put_traits [0.160832s] ... 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-58d297a9-521e-414d-b110-64e8f47312bb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate [0.087448s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_189_volume_targets_post_member [0.107515s] ... 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-f2fb5dd6-dc52-4cfc-8442-1a4a0c7cd726
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked [0.035746s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found [0.041511s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_303_node_history_get_observer [0.129400s] ... 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-de1ff164-d7de-4bef-b624-063a49eead4b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"history": [{"uuid": "9f1fca54-cc61-446e-8d21-d54cb995e821", "created_at": "2025-05-29T16:57:02.296878+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9f1fca54-cc61-446e-8d21-d54cb995e821", "rel": "self"}]}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_251_owner_service_can_put_traits [0.143723s] ... 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-fd3197e2-d1b9-4687-86b1-915214b8a1e9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on [0.068957s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_190_volume_targets_post_observer [0.143951s] ... 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-7602f6ce-6e0a-4433-b0bb-a8180802ee2a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found [0.062619s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_304_node_history_get_entry_admin [0.126871s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/77039550-725e-42af-9d51-c1d400f84e75 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c9c84327-1de2-4065-bc9b-4cee04351ea1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "77039550-725e-42af-9d51-c1d400f84e75", "created_at": "2025-05-29T16:57:02.413023+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/77039550-725e-42af-9d51-c1d400f84e75", "rel": "self"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_252_owner_member_cannot_put_traits [0.131477s] ... 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-2b144354-a0bf-459c-9c3a-11d68899aa4c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid [0.048193s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_191_volume_volume_target_id_get_admin [0.118160s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/f1101e18-113a-4729-9993-3952ff46feb3 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-0b4e19e9-1942-4414-be3b-645125435d06
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target f1101e18-113a-4729-9993-3952ff46feb3 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type [0.070020s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_253_lessee_admin_cannot_put_traits [0.139506s] ... 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-a2b1e4d5-bdcf-4ebe-9f2e-0d4d67b57578
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_member [0.219703s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d210a406-be66-4fac-afd2-158da4fe003a WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5f343940-593b-49a0-ad00-4343becf6a1f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_attach_virtual_media_http [0.091668s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_192_volume_volume_target_id_get_member [0.179392s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/fd25e381-8878-4fff-80eb-5643d6d3f080 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-81a34c13-12ab-4cbe-b005-1113a7a74446
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target fd25e381-8878-4fff-80eb-5643d6d3f080 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_attach_virtual_media_local [0.063599s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_254_lessee_manager_cannot_put_traits [0.134748s] ... 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-d6bc3102-fe3a-461f-ba0b-3c10bec14727
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media [0.055884s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_193_volume_volume_target_id_get_observer [0.125389s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/a0670a4a-4688-4d1c-84b9-f1ace35d77df WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-92e30df7-ef1d-4fba-8531-c82d00e107c5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target a0670a4a-4688-4d1c-84b9-f1ace35d77df could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_306_node_history_get_entry_observer [0.172734s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9c1d9ed4-2007-4914-b745-8fc92b10145e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0f2d4275-561c-4e8b-a11e-f73280469f06
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "9c1d9ed4-2007-4914-b745-8fc92b10145e", "created_at": "2025-05-29T16:57:02.840671+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/9c1d9ed4-2007-4914-b745-8fc92b10145e", "rel": "self"}]}
{3} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_attach [0.063688s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_255_lessee_member_cannot_put_traits [0.120673s] ... 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-44bbed34-13ae-4672-9d06-c24c50619557
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request [0.053631s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_194_volume_volume_target_id_patch_admin [0.105754s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/4530ff87-54aa-4a12-9ff7-fc411619b7e5 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-246763af-1758-4a68-97d2-3b20312caf44
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 4530ff87-54aa-4a12-9ff7-fc411619b7e5 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_prepare [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(
{0} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request [0.061768s] ... ok
{0} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error [0.036987s] ... ok
{3} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification [0.058398s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_256_third_party_admin_cannot_put_traits [0.114805s] ... 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-36d00b1d-58cb-42e0-8e73-26add38cd15e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets [0.021902s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits [0.030869s] ... ok
{0} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable [0.074937s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace [0.033378s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False [0.022948s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_257_third_party_admin_cannot_put_traits_service [0.120039s] ... 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-df9f195e-6841-4d1c-95ee-3bd57edfde81
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable [0.054254s] ... ok
{0} ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check [0.021864s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True [0.046897s] ... ok
{0} ironic.tests.unit.api.test_root.TestRoot.test_get_root [0.023610s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e783f793-ddb9-4e12-9102-c007e9bdde73
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}]}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false [0.037380s] ... ok
{0} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors [0.038131s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/foo WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_258_owner_admin_can_delete_traits [0.098035s] ... 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-7c8eaf28-8520-4d09-b743-3f87476dcf1d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_true [0.034394s] ... ok
{0} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 [0.029783s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ GOT Response: 405 Method Not Allowed
Content-Type: application/json
Openstack-Request-Id: req-fe86c5b6-992e-499e-80f5-01bf018b0310
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The server could not comply with the request since it is either malformed or otherwise incorrect.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.validation.test_validators.TestSchemaValidator.test_datetime_format [0.024676s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_boot_mode [0.041620s] ... ok
{0} ironic.tests.unit.api.validation.test_validators.TestSchemaValidator.test_uuid_format [0.022158s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_259_owner_manager_can_delete_traits [0.076523s] ... 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-e74a6f9f-9a4e-4c6a-8129-2f0af33a3b4a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state [0.029150s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_195_volume_volume_target_id_patch_member [0.411537s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/de76d210-6a0c-4283-b1d0-fae72c351ac7 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-735442ff-1ad9-4b5d-ba45-f427a3478442
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target de76d210-6a0c-4283-b1d0-fae72c351ac7 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema [0.035213s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_secure_boot [0.052128s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_args [0.037594s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean [0.039878s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_kwargs [0.031897s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy [0.027226s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_mixed [0.029562s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_196_volume_volume_target_id_patch_observer [0.112383s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/1f3a54d4-6414-4459-a58d-4ef2171b8f9c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c358d990-5aef-4a55-868a-c60ac315d74b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1f3a54d4-6414-4459-a58d-4ef2171b8f9c could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_service [0.055707s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation [0.033412s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_260_owner_member_cannot_delete_traits [0.249975s] ... 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-dee35f2e-aa5f-4dab-be45-756ee5475329
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node [0.037896s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port [0.024435s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation [0.036492s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_197_volume_volume_target_id_delete_admin [0.196512s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/3fb111aa-9d34-4b22-a87e-973485b25b2e GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-0027cff8-6f59-45c5-86a2-038ad9d8df03
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 3fb111aa-9d34-4b22-a87e-973485b25b2e could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node [0.041730s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_261_lessee_admin_cannot_delete_traits [0.142675s] ... 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-3a2f6599-86b4-444c-9e9d-3afb953bbd3a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_262_lessee_manager_cannot_delete_traits [0.100005s] ... 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-074647e6-c8ec-43cc-b1e4-0edaea2f64ed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_cinder.TestCinderClient.test__get_cinder_session [0.407958s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_198_volume_volume_target_id_delete_member [0.209631s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/8446b4dc-cfae-42be-9edd-b8e92c6ac8d6 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-db9e67ab-8c88-4795-919e-fad121d1944e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 8446b4dc-cfae-42be-9edd-b8e92c6ac8d6 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_263_lessee_member_cannot_delete_traits [0.097089s] ... 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-e00d2d07-902e-4a3b-95fb-23aac33af734
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_264_third_party_admin_cannot_delete_traits [0.086708s] ... 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-5f3dc79e-dfd8-42b3-ae21-3ec96c3ae3c6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup [0.318607s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector [0.048860s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_199_volume_volume_target_id_delete_observer [0.210645s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/0ddd5034-f4c1-4dfb-8baa-c248ec112aa2 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f567b620-eeb7-44aa-b0b4-29b474f58ee8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 0ddd5034-f4c1-4dfb-8baa-c248ec112aa2 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target [0.030969s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_265_owner_admin_can_put_custom_traits [0.111731s] ... 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-b86cfb0f-4e91-4e08-b257-b1b4e7b1f053
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean [0.089040s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy [0.030216s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_266_owner_manager_can_put_custom_traits [0.114384s] ... 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-61b9112d-387d-442c-b604-f4f57f5913b9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_200_nodes_volume_get_admin [0.139922s] ... 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-d67d4f1e-849f-4d16-b454-ed68e35e9b16
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy_with_deploy_steps [0.081113s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue [0.030551s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_267_owner_member_cannot_put_custom_traits [0.121072s] ... 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-8965680a-5084-4a80-8452-3b623c8d6fcd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_service [0.034208s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down [0.025673s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_member [0.169096s] ... 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-1dcd9c3e-0379-4798-90a9-91d9d4d7081f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue [0.034424s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru [0.029392s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device [0.036953s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for [0.042240s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information [0.026124s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_268_lessee_admin_cannot_put_custom_traits [0.234867s] ... 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-dc24700a-31af-43a4-b204-1fc9562181f2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_202_nodes_volume_get_observer [0.206216s] ... 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-f3bbd6cb-f62a-4015-aee1-98f97980406e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties [0.055473s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods [0.036347s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_269_lessee_manager_cannot_put_custom_traits [0.097189s] ... 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-fc1349a3-40fe-4f3a-a6db-4990e5d5daa7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_indicator_state [0.033379s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_203_nodes_volume_connectors_get_admin [0.120870s] ... 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-e6324208-1b52-4c4a-bbed-a09f8787c630
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods [0.036532s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_with_token [0.037107s] ... ok
{0} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_cinder_client_with_context [0.924001s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_270_lessee_member_cannot_put_custom_traits [0.110022s] ... 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-535c7ba7-a91d-40f4-96d5-940285e70a2a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties [0.027227s] ... ok
{0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary [0.050800s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic [0.034036s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_204_nodes_volume_connectors_get_member [0.131511s] ... 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-4b6dddc1-eab0-4d37-ab4b-7c40c919825e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors [0.031722s] ... ok
{0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id [0.036112s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_271_third_party_admin_cannot_put_custom_traits [0.096426s] ... 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-e3e8f963-cc48-4082-8aaa-ad4a47f89ece
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached [0.036549s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices [0.075187s] ... ok
{0} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available [0.042391s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_272_owner_reader_get_vifs [0.084098s] ... 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-05d1a3ae-dc1c-4061-a5af-d84dcaeee3a4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators [0.029058s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_205_nodes_volume_connectors_get_observer [0.119952s] ... 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-d8a3ad2f-f82b-4d5e-8305-45aa3af0bec4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache [0.030659s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set [0.096070s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache [0.053306s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver [0.037888s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_206_nodes_volume_targets_get_admin [0.126659s] ... 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-d0c72757-1abf-44de-828e-d55699db3df9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface [0.071252s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver [0.031838s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface_instance_info_override [0.032332s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_273_lessee_reader_get_vifs [0.208593s] ... 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-7a7b43b9-300e-4843-89c7-250dce5da207
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces [0.027584s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_207_nodes_volume_targets_get_member [0.080965s] ... 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-51c3e18e-39ed-45f2-9829-ac2198a6ffa2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver [0.066860s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_network_interface_instance_info_override [0.033140s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface [0.030672s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver [0.054042s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf [0.027774s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_208_nodes_volume_targets_get_observer [0.114357s] ... 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-2aa67ce9-476b-4720-90c1-a2860a5e9781
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat [0.066549s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_274_third_party_admin_cannot_get_vifs [0.163121s] ... 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-4cb521ee-993a-499b-9d89-0e35c54856b6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces [0.085326s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_209_drivers_get_admin [0.071390s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-76b6f1e2-0e2d-4ccd-8e4b-cc6f5624efc5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat_agent_token [0.063669s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface [0.035967s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported [0.037456s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi [0.068588s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported [0.030586s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_210_drivers_get_member [0.106644s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-36c43fec-25e7-4903-a520-f2287baf2cfd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg [0.027222s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware [0.049203s] ... ok
{0} ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg_reraise [0.023564s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call [0.024432s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_275_owner_admin_can_post_vifs [0.192686s] ... 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-829c9ce7-e99e-4cd4-a804-94e5762136e6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable [0.045916s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_211_drivers_get_observer [0.126340s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-b264e6a2-939d-4fa7-bc59-67f95ee6b38e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_expected_exception [0.067462s] ... ok
{0} ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable [0.051957s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch [0.047973s] ... ok
{0} ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state [0.046841s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_212_drivers_driver_name_get_admin [0.078664s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-4c04f7ec-a254-4dba-b469-46b4882845db
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch_with_rpc_disabled [0.024076s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_276_service_can_post_vifs_for_own_project [0.134464s] ... 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-58d5a552-6519-4217-876a-bb9997d13458
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_fsm.FSMTest.test_initialize [0.037027s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_no_conductor_with_rpc_disabled [0.029101s] ... ok
{0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable [0.037482s] ... ok
{0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state [0.028929s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_member [0.084525s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-f8eb4820-9523-4d35-b5d1-d18f89a42ce7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_with_rpc_disabled [0.061647s] ... ok
{0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not [0.021410s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast [0.031303s] ... ok
{0} ironic.tests.unit.common.test_fsm.FSMTest.test_process_event [0.037984s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error [0.037564s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_277_service_cannot_post_vifs_for_other_project [0.180111s] ... 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-78b70447-d03f-4dd8-913e-e4c854db701c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_214_drivers_driver_name_get_observer [0.099286s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-8156cce2-4395-41bb-b2cd-497a5c48f1a4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable [0.052629s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action [0.049804s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_215_drivers_properties_get_admin [0.066822s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-5f861e71-c307-419a-98bb-18d1b2533d16
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_278_owner_manager_can_post_vifs [0.091914s] ... 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-357e975f-21de-4e1d-a8de-68f0bced8b69
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version [0.056272s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions [0.046366s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_216_drivers_properties_get_member [0.091991s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-e94f99cd-a619-40d9-bfdd-e49386f2d908
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version [0.036703s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_279_lessee_admin_can_post_vifs [0.120121s] ... 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-852fc587-3b14-4823-b52d-f32c3ca7a1d9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions [0.037806s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version [0.058839s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits [0.027057s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_217_drivers_properties_get_observer [0.167563s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-4040a984-496f-472c-a6ff-55560bdc1ea5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all [0.031852s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled [0.035375s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid [0.031899s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device [0.025444s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode [0.033354s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_admin [0.159447s] ... 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-c01c68f7-d435-42f3-8787-0f2259edb65d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state [0.053533s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config [0.033618s] ... ok
{0} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth [0.545111s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_280_lessee_manager_can_post_vifs [0.382295s] ... 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-75329dc1-5a65-4c45-b4d6-869f1b6c7578
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node [0.034597s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_member [0.112565s] ... 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-17cced8e-826f-4b46-b03d-f5e1426acfdf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port [0.031733s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup [0.055871s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_220_drivers_raid_logical_disk_properties_get_observer [0.084782s] ... 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-47b4d262-2e62-4617-b16e-69db2b4e939e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector [0.042362s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_281_owner_member_can_post_vifs [0.145353s] ... 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-ad7ad45e-1fc3-4bac-987d-02f06321614e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_admin [0.068868s] ... 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-d7731ebf-4625-4852-b869-2ab576e88d7a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target [0.069237s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_member [0.085170s] ... 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-ed434608-8301-431b-939b-3d7112605bf3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces [0.084057s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru [0.030156s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach [0.041006s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_223_drivers_vendor_passthru_methods_get_observer [0.146618s] ... 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-dd348c7a-b32d-4952-9353-57acbfa5fee8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach [0.036645s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_282_lessee_member_cannot_post_vifs [0.275942s] ... 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-ebeb6089-c994-4514-bea2-69b0832a715a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list [0.075213s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_224_drivers_vendor_passthru_get_admin [0.133856s] ... 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-d71a5eb3-6888-49fb-8719-aad4c72e4c43
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps [0.072108s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_225_drivers_vendor_passthru_get_member [0.071494s] ... 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-53907ad1-9530-49a0-8933-252903eefb73
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled [0.063411s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_283_owner_reader_cannot_post_vifs [0.246338s] ... 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-08248bec-cbe4-4830-9cf3-edc19314aee9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_fail [0.046844s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_226_drivers_vendor_passthru_get_observer [0.111566s] ... 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-281d208c-db03-4fa4-8ea1-89f11f230422
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_284_lessee_reader_cannot_post_vifs [0.115395s] ... 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-f6088191-0a88-47f6-b1f4-1cc4d6bbe6e2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_227_drivers_vendor_passthru_post_admin [0.156834s] ... 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-98bbfd9a-4cbb-4d4d-9006-869874b05f84
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_285_third_party_admin_cannot_post_vifs [0.099797s] ... 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-151c4b18-4473-4460-a0e8-ac9f651f25a6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth [0.962615s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_228_drivers_vendor_passthru_post_member [0.087065s] ... 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-6bac485e-d79d-4dd4-bb30-d74de2d0968d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_286_owner_admin_delete_vifs [0.098989s] ... 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-7891e575-972e-4570-9364-5c96771c22c5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off [0.327174s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_post_observer [0.076866s] ... 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-cb50d41a-811c-4b39-86e3-8f17296e491d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_ok [0.049443s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted [0.050112s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_287_owner_manager_delete_vifs [0.128758s] ... 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-c99acaad-18e1-40b6-8cfc-136b6302430c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test_execute_verify_step [0.084827s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_288_lessee_admin_can_delete_vifs [0.103167s] ... 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-46a77668-74e5-4f67-977c-fd4dca9214dd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state [0.045827s] ... ok
{3} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change [0.021582s] ... ok
{3} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once [0.022079s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_289_lessee_manager_can_delete_vifs [0.091408s] ... 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-07fb68de-de9c-4af2-b666-aeb6c4aec12a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released [0.025780s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_230_drivers_vendor_passthru_put_admin [0.308881s] ... 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-58c48cdd-08ed-45f1-bbeb-39a492096c72
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable [0.049124s] ... ok
{3} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable [0.026459s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_231_drivers_vendor_passthru_put_member [0.073154s] ... 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-8466fd4b-292e-4d23-86eb-6eda9df37a91
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_290_owner_member_can_delete_vifs [0.097058s] ... 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-2d3ea3a5-7e7e-4d27-a322-0786e0d67f40
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable [0.024515s] ... ok
{3} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable [0.023062s] ... ok
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout [0.072121s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_put_observer [0.103491s] ... 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-70d8acfc-df9c-457c-a17d-47a0999a51f9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_lessee_member_cannot_delete_vifs [0.137677s] ... 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-8352da57-3347-4a54-93a1-9f6e29fa2523
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock [0.064931s] ... ok
{0} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth [0.683502s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler [0.076629s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_292_third_party_admin_cannot_delete_vifs [0.130224s] ... 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-2376a4bb-f1ac-49e3-9806-ae44f3b9430d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception [0.064437s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_235_nodes_bios_get_admin [0.131353s] ... 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-d2e99933-a6a0-465b-8104-56f88b1bb82a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception [0.064346s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_293_service_can_delete_vifs [0.138997s] ... 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-78196757-b473-4e80-9d58-d4ad61b94913
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup [0.034475s] ... ok
{3} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy [0.034806s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_236_nodes_bios_get_member [0.091764s] ... 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-bbe08a63-3898-4f5d-a960-628b1a3babbb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps [0.042743s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_no_skip [0.058322s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_294_service_cannot_delete_other_nodes_vifs [0.165147s] ... 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-d8836d07-658b-45a6-b217-431b0e8be21e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_unset_clean_step [0.045876s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_237_nodes_bios_get_observer [0.170871s] ... 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-e13e4dbb-9498-4358-9349-c05695975784
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps [0.047024s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_295_owner_readers_can_get_indicators [0.110877s] ... 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-d60a7d80-045c-4849-8824-2c685bae0b20
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_no_skip [0.064345s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_238_nodes_bios_bios_setting_get_admin [0.094901s] ... 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-785bb86b-023d-4250-8000-6a64c949efef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_296_lesse_readers_can_get_indicators [0.098496s] ... 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-d029f941-25b5-496d-934c-9dec6803790a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_unset_deploy_step [0.052778s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetNodeNextStepsTestCase.test_get_node_next_steps_exception [0.049329s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_239_nodes_bios_bios_setting_get_member [0.128086s] ... 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-32a391dd-2d1c-4e5a-b4c5-31ac2b603121
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_no_token_info [0.050935s] ... ok
{3} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_returns_project_id_if_present [0.036680s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_240_nodes_bios_bios_setting_get_observer [0.089393s] ... 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-7662af86-fdc1-4473-817b-40d16a0c0d19
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting [0.052572s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_297_third_party_admin_cannot_get_indicators [0.229753s] ... 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-9f7ef118-4357-40b2-af78-038025a1312f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_always [0.057473s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_241_conductors_get_admin [0.135306s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-541a09f0-76b1-44fb-ba3f-50515fcd21ea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_default [0.048256s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_298_owner_reader_can_get_indicator_status ... SKIPPED: API appears to be broken and should be patched outside of this work.
{3} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_never [0.070729s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_242_conductors_get_member [0.123834s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3763388c-f155-427c-91fb-6903a7b42c55
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_299_lessee_reader_not_get_indicator_status ... SKIPPED: API appears to be broken and should be patched outside of this work.
{3} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device [0.067019s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set [1.051080s] ... ok
{0} ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize [0.000378s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_300_owner_member_can_set_indicator [0.091292s] ... 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-720cbebf-7566-434d-bad1-0749f98af9c8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry [0.068729s] ... ok
{3} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid [0.069908s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_243_conductors_get_observer [0.144541s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-674298f3-ef9b-4c1f-b976-99e9537ba83b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found [0.066391s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_301_lessee_member_cannot_set_indicator [0.083401s] ... 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-f81b8ca7-2ab6-4de4-8100-91931dc16634
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_indicator_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 [0.105419s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success [0.053595s] ... ok
{0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups [0.043307s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_244_conductors_hostname_get_admin [0.137811s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-85c01443-1fbe-4024-ac70-4620c18c8f7c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 [0.081426s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval [0.048030s] ... ok
{0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.047773s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_member [0.084144s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2e4a7b0d-3c22-40e3-a20e-8e975f0c18f9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_302_third_party_admin_cannot_set_indicator [0.198441s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/54976197-76ab-4308-b0c0-8e7e8981c921/management/indicators/component/magic_light WITH None GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e31cf85c-9390-492a-a0a7-e29da0ed868c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 54976197-76ab-4308-b0c0-8e7e8981c921 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached [0.026912s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 [0.103853s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_publisher.SwiftPublisherTestCase.test__append_filename_param_with_filename [0.022887s] ... ok
{0} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_qs [0.035529s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 [0.072636s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_246_conductors_hostname_get_observer [0.104302s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-beaccfd9-b48e-4e4d-aec4-bcf0f899a8a4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_without_qs [0.032832s] ... ok
{0} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_publish [0.029623s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_303_owner_reader_can_list_portgroups [0.150003s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3196eba7-f975-44ab-9ad9-4a0e0e8f0c4f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "address": "01:03:09:ff:01:01", "name": "magicfoo", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}]}, {"uuid": "84c4fd43-f4c4-4485-97e0-c1efe6c6789a", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/84c4fd43-f4c4-4485-97e0-c1efe6c6789a", "rel": "self"}, {"href": "http://localhost/portgroups/84c4fd43-f4c4-4485-97e0-c1efe6c6789a", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_247_allocations_post_admin [0.089387s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-787eee3f-5379-452e-8e92-14e47711fa4b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_unpublish [0.051710s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 [0.109719s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_304_owner_service_can_list_portgroups [0.095352s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cd882bd9-8fcd-4aa7-ba2d-ce8d4333bd1d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "address": "01:03:09:ff:01:01", "name": "magicfoo", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}]}, {"uuid": "41bc5e09-3b7c-4689-8f8a-c74ba7b18f5c", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/41bc5e09-3b7c-4689-8f8a-c74ba7b18f5c", "rel": "self"}, {"href": "http://localhost/portgroups/41bc5e09-3b7c-4689-8f8a-c74ba7b18f5c", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy [0.066991s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_248_allocations_post_member ... SKIPPED: This endpoint's behavior supports allocation creation as a member with the new Role Based Access Control changes. Thus this test cannot both ensure prior and post-change behavior as it is actually valid moving forward.
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 [0.091603s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_lessee_reader_can_list_portgroups [0.090100s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-940b5d74-f7cc-4404-855d-1f71cc68c09e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "805a2781-1a49-4018-8a10-8167366931ae", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/805a2781-1a49-4018-8a10-8167366931ae", "rel": "self"}, {"href": "http://localhost/portgroups/805a2781-1a49-4018-8a10-8167366931ae", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail [0.078470s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_249_allocations_post_observer [0.097034s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-459dbcb8-a5d8-46a9-b65b-d828ee25807d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 [0.117922s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_hard_link [0.085077s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_250_allocations_get_admin [0.077697s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-92c95bab-f569-4553-8ce3-e06e0119f02f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 [0.069107s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_symlink [0.100992s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_member [0.079548s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-434fdd57-a424-4439-96c0-194540b42c14
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_306_third_party_admin_cannot_list_portgroups [0.208018s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-59d28678-231f-4815-9440-065b05b69eb6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": []}
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 [0.091244s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_show [0.081303s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 [0.047201s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_252_allocations_get_observer [0.104910s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4a8857a7-8241-4025-98e5-b930216992bb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href [0.081923s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 [0.070413s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_307_owner_reader_can_read_portgroup [0.180780s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-57bff5bb-2f71-4e68-9fec-da61264a984e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "created_at": "2025-05-29T16:57:10.131896+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"}]}
{0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_blocked_path [0.046986s] ... ok
{0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_empty_allowlist [0.027355s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 [0.067023s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_253_allocations_allocation_id_get_admin [0.143217s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/0e43b95b-fa05-4001-bdb4-b4a220ae7e2d WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-13d2b101-d8b2-455f-9ad2-dc98d24bf437
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 0e43b95b-fa05-4001-bdb4-b4a220ae7e2d could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_in_allowlist [0.025320s] ... ok
{0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_not_in_allowlist [0.030916s] ... ok
{0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file [0.026867s] ... ok
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific [0.021075s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 [0.118221s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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__validate_url_is_specific_bad_format [0.028117s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_254_allocations_allocation_id_get_member [0.112019s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/ef31792e-dd22-4bbe-aa3f-90a30b49f404 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ed894b8a-9982-4c8c-827e-e805d01c3b89
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation ef31792e-dd22-4bbe-aa3f-90a30b49f404 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_308_lessee_reader_can_read_portgroup [0.188491s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/86cf98ac-e347-4147-ba51-02dd3e9b44db WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cd9b6c61-4877-4b15-995d-dc9d19c5560d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "86cf98ac-e347-4147-ba51-02dd3e9b44db", "created_at": "2025-05-29T16:57:10.376455+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/86cf98ac-e347-4147-ba51-02dd3e9b44db", "rel": "self"}, {"href": "http://localhost/portgroups/86cf98ac-e347-4147-ba51-02dd3e9b44db", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/86cf98ac-e347-4147-ba51-02dd3e9b44db/ports", "rel": "self"}, {"href": "http://localhost/portgroups/86cf98ac-e347-4147-ba51-02dd3e9b44db/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific_not_specific [0.027235s] ... ok
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_download_direct_manifest_reference [0.028142s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_255_allocations_allocation_id_get_observer [0.081932s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/ef39a30a-2ee2-430a-bdcb-29060022fdaa WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-248c20f0-3b68-4469-9771-1785aa3254b0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation ef39a30a-2ee2-430a-bdcb-29060022fdaa could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_download_direct_manifest_reference_just_digest [0.029807s] ... ok
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image [0.030880s] ... ok
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_aarch64 [0.027530s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 [0.152914s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_bad_manifest [0.036624s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_admin [0.118886s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/edd433c6-9657-4366-86c0-0fc95187c92e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6198751f-bcad-42f8-be36-98309896a0f8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation edd433c6-9657-4366-86c0-0fc95187c92e could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_local [0.025120s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_309_third_party_admin_cannot_read_portgroup [0.196794s] ... 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-9da5ae46-b168-42d2-8dbd-3405f14e4e4e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_specific_digest [0.030932s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 [0.117711s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_show [0.038551s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_310_owner_admin_can_add_portgroup [0.119630s] ... 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/77c6bb67-1d81-4bac-85b4-62b8fd2c3e6b
Openstack-Request-Id: req-ebba6d63-cea0-427b-be47-347fc72a6c27
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "77c6bb67-1d81-4bac-85b4-62b8fd2c3e6b", "created_at": "2025-05-29T16:57:10.762722+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/77c6bb67-1d81-4bac-85b4-62b8fd2c3e6b", "rel": "self"}, {"href": "http://localhost/portgroups/77c6bb67-1d81-4bac-85b4-62b8fd2c3e6b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/77c6bb67-1d81-4bac-85b4-62b8fd2c3e6b/ports", "rel": "self"}, {"href": "http://localhost/portgroups/77c6bb67-1d81-4bac-85b4-62b8fd2c3e6b/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_validate_href [0.062368s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_257_allocations_allocation_id_patch_member [0.146824s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/b1ca964a-4490-4d88-aefd-10e858926089 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6ac2ac13-f8ea-4a26-b785-c1449c298ad4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation b1ca964a-4490-4d88-aefd-10e858926089 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service [0.031887s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 [0.132095s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ServiceGetterTestCase.test_get_glance_image_service [0.049472s] ... ok
{0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url [0.028468s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_patch_observer [0.103630s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/33d6f785-6685-4535-99ff-65553df9611e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-46cc520a-136f-4d54-bf93-24e96bb39f9b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 33d6f785-6685-4535-99ff-65553df9611e could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_311_owner_service_can_add_portgroup [0.116626s] ... 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/53c0401a-3a6d-4063-9d27-2860697cacd5
Openstack-Request-Id: req-845b7822-105a-4e26-808d-04ba14321070
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "53c0401a-3a6d-4063-9d27-2860697cacd5", "created_at": "2025-05-29T16:57:10.877741+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/53c0401a-3a6d-4063-9d27-2860697cacd5", "rel": "self"}, {"href": "http://localhost/portgroups/53c0401a-3a6d-4063-9d27-2860697cacd5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/53c0401a-3a6d-4063-9d27-2860697cacd5/ports", "rel": "self"}, {"href": "http://localhost/portgroups/53c0401a-3a6d-4063-9d27-2860697cacd5/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service [0.026471s] ... ok
{0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service [0.020454s] ... ok
{0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override [0.022228s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_admin [0.069872s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/dd466246-463f-4eca-b55d-c3f8c32a3c17 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-64b5c9af-bd11-4a8f-abe3-21346eab95c5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation dd466246-463f-4eca-b55d-c3f8c32a3c17 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override_no_data [0.020602s] ... ok
{0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override_no_user_auth [0.036915s] ... ok
{0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref [0.021903s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 [0.200220s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ServiceGetterTestCase.test_get_image_service_oci_url [0.020410s] ... ok
{0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_is_container_registry_url [0.018822s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_260_allocations_allocation_id_delete_member [0.118195s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/a5024ccd-f522-4a89-9fd9-07d67f413d37 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ed92c5bc-d770-4d9d-9735-cab2fa0ef9b7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation a5024ccd-f522-4a89-9fd9-07d67f413d37 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_312_owner_manager_can_add_portgroup [0.189245s] ... 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/dfac1cd3-e1bc-4787-aac2-6107751611f6
Openstack-Request-Id: req-ae36967d-7e1a-450f-8c85-89c9e9ef36db
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "dfac1cd3-e1bc-4787-aac2-6107751611f6", "created_at": "2025-05-29T16:57:11.039936+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/dfac1cd3-e1bc-4787-aac2-6107751611f6", "rel": "self"}, {"href": "http://localhost/portgroups/dfac1cd3-e1bc-4787-aac2-6107751611f6", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/dfac1cd3-e1bc-4787-aac2-6107751611f6/ports", "rel": "self"}, {"href": "http://localhost/portgroups/dfac1cd3-e1bc-4787-aac2-6107751611f6/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs [0.034670s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 [0.061391s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg [0.032509s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_261_allocations_allocation_id_delete_observer [0.088306s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/76b6be90-fa4b-4912-83e2-df56b03a9fe2 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-55916526-b7ee-49f8-9f62-3abe5accde68
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 76b6be90-fa4b-4912-83e2-df56b03a9fe2 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 [0.065062s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg [0.059260s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_313_owner_member_cannot_add_portgroup [0.141787s] ... 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-926c0cd2-c912-4837-bcc7-acc6823622c1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files [0.033512s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 [0.079560s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_admin [0.109200s] ... 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-24c2a5c4-6fd4-4719-9682-64bb5c4730b9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_no_esp_imageimg [0.052885s] ... ok
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_with_ExecutionError [0.041603s] ... ok
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fails_no_grub_cfg [0.044258s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_263_nodes_allocation_get_member [0.112154s] ... 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-abf19d49-afec-4779-9a68-c941a3c56fe1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios [0.059467s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_264_nodes_allocation_get_observer [0.075941s] ... 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-ca381824-3604-4fb9-a0f0-dd5f7e9da7b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode [0.044556s] ... ok
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso [0.023798s] ... ok
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs [0.028483s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_314_lessee_admin_cannot_add_portgroup [0.331768s] ... 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-06b1c3bc-50da-4913-8737-46f63139cf56
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_admin [0.092382s] ... 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-be76bbbb-1e02-4a2a-ab34-283215342da9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image [0.035263s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 [0.339104s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs [0.076640s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_266_nodes_allocation_delete_member [0.109164s] ... 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-2a233cde-4b04-4bc3-bca2-d6fb3eb59f9f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_315_lessee_manager_cannot_add_portgroup [0.137210s] ... 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-232cae1c-f76f-4e7b-8d8f-c8712dd976f1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 [0.112448s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_deploy_iso [0.084121s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_nodes_allocation_delete_observer [0.118121s] ... 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-4436334f-5615-4f85-a236-d1b30086ab6c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_316_lessee_member_cannot_add_portgroup [0.100358s] ... 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-a226133e-e4ff-4c1b-a7a1-e7d6f9ede016
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_esp_image [0.061063s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 [0.133924s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_admin [0.094357s] ... 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-985c4dad-1d3e-4f2c-b5cd-c222a94206bd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_317_third_party_admin_cannot_add_portgroup [0.095895s] ... 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-1ec22759-e164-4b4c-aa0d-b373fec2189e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 [0.136417s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_318_owner_admin_can_modify_portgroup [0.133797s] ... 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-7f948abf-fb4e-466b-bfd4-c16da338d0fa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_319_owner_manager_can_modify_portgroup [0.125456s] ... 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-4b185a41-4055-4dd2-97cc-473e4b790ed8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_269_deploy_templates_post_member [0.301538s] ... 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-38356ae8-ae4d-485b-9cb1-54849d9824b6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets [0.168864s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_320_owner_member_cannot_modify_portgroup [0.078685s] ... 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-6ed60f5a-2db5-4967-98b3-426ca63117fd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_270_deploy_templates_post_observer [0.107862s] ... 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-2c20df33-3fde-45a4-988f-2a2b03e6bd55
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_mkisofs_fails [0.509894s] ... ok
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_uefi_rootfs_fails [0.029525s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix [0.173095s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails [0.039736s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_271_deploy_templates_get_admin [0.110225s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d27bc346-07df-4179-bd83-93f4d91d9fbf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails [0.033300s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_321_lessee_admin_cannot_modify_portgroup [0.208341s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/a475e3cf-728b-4430-b14c-08e5b71705e4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-be5e5370-b570-41d7-93b7-df775ed558de
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios [0.030603s] ... ok
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux [0.039351s] ... ok
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create [0.120816s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux [0.044627s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_272_deploy_templates_get_member [0.127364s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-bc0f83cf-9168-4298-bb8c-35035fe06fa8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_inject_files [0.030863s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_322_lessee_manager_cannot_modify_portgroup [0.143838s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/5b93509f-c581-4ffe-a67e-4c43791d4d31 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1681686d-3482-45ea-b2bc-4dde806dcf37
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update [0.097522s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image [0.031240s] ... ok
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails [0.022126s] ... ok
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails [0.021467s] ... ok
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all [0.028165s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_273_deploy_templates_get_observer [0.133769s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-664f165a-7b7b-42ed-995e-14d17b3ae8c0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop [0.025701s] ... ok
{3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios [0.118854s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset [0.032856s] ... ok
{0} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image [0.029347s] ... ok
{0} ironic.tests.unit.common.test_json_rpc.TestSession.test_http_basic [0.030047s] ... ok
{0} ironic.tests.unit.common.test_json_rpc.TestSession.test_http_basic_deprecated [0.022860s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_323_lessee_member_cannot_modify_portgroup [0.225022s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/f95e739b-f258-483d-bd6b-9b9e6f09d705 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2b82b4f6-8c4c-40d2-9712-553c88c7e3f5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_json_rpc.TestSession.test_keystone [0.028904s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_admin [0.172412s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/ea36ee93-647b-4571-a717-a018c50e62a9 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-78347581-f3da-4b5e-a8fa-9da55a17f850
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_exception [0.156165s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_json_rpc.TestSession.test_noauth [0.065995s] ... ok
{0} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config [0.021235s] ... ok
{0} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth [0.019691s] ... ok
{0} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail [0.020588s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_324_third_party_admin_cannot_modify_portgroup [0.157538s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/1920894a-7121-401f-8bb5-93fa050c6449 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a0c34e56-b895-40d4-a749-0652cfee4ef1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 1920894a-7121-401f-8bb5-93fa050c6449 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported [0.115578s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_member [0.145164s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/39282a3f-84e1-46c2-a660-510b12ef751d WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0d1ab7b4-d871-4c02-9b68-1cb35d63e1be
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth [0.107202s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_325_owner_admin_can_delete_portgroup [0.146989s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-c36bd67b-4c82-4404-94eb-10a9ec294e27
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_276_deploy_templates_deploy_template_id_get_observer [0.146589s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/8189192e-31fa-4bd1-8e61-c917a9634485 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6611941a-242c-4680-b818-9d6d70b40839
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session [0.072299s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_326_owner_manager_can_delete_portgroup [0.077103s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-6a518931-c105-4237-a1c0-b8574913e2d3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive [0.093507s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify [0.270097s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_327_owner_member_cannot_delete_portgroup [0.079307s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1c799aaf-baf8-4a7f-ad3d-5346f8bfc960
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_admin [0.151070s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/2481269e-32e4-4932-9417-32da8f1ca75a WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e6daf77a-1139-4c29-8d13-96e791612e7d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift [0.070908s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_328_owner_service_can_delete_portgroup [0.093796s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-eaa14185-5ccf-471d-b954-f34f054afad0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_failure [0.072625s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_329_lessee_admin_cannot_delete_portgroup [0.077740s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/67b557e6-8048-4212-b4e0-130613ff8824 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-28e70935-9001-4def-89e2-441fad7c1027
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_member [0.195566s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/aefc34eb-846b-4ce1-b388-29cf34800a4c WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-80d30c01-de2c-4374-83b7-30472ff7e7a6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_ok [0.111192s] ... ok
{3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails [0.251826s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_330_lessee_manager_cannot_delete_portgroup [0.093381s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/84663e81-56bf-4ac7-a2d8-76e27d0f71c6 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-717f3c1f-3d08-4772-9508-1963e07e3a0f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_interfaces [0.069959s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_331_lessee_member_cannot_delete_portgroup [0.082506s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/89b3e487-d8d2-4409-8aff-3217ea5544f0 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d2d56da0-385d-40da-903e-0252cd6b03b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_279_deploy_templates_deploy_template_id_patch_observer [0.145374s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/99cbf895-39c1-41c6-97e9-caf9407072f7 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8e0eb67a-16e9-4d13-8ba1-583fd41a8cf3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_params [0.065219s] ... ok
{3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_validation_fails [0.216820s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_admin [0.103871s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/aed1a04c-8b4b-4fa0-b293-c63ee048a014 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3b39c238-9b0d-4184-b003-30694835ce68
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_race [0.107451s] ... ok
{3} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_bad_path_raises [0.027918s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_332_third_party_admin_cannot_delete_portgroup [0.140681s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/23a1755e-efef-4cd8-af85-f903f0aaf06b GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-57f5fc1a-e635-4382-abed-87cad698c2f2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 23a1755e-efef-4cd8-af85-f903f0aaf06b could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_good_paths [0.025119s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error [0.049358s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_good_paths_trailing_slash [0.021094s] ... ok
{3} ironic.tests.unit.console.rfb.test_authnone.RFBAuthSchemeNoneTestCase.test_handshake [0.022551s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_member [0.092098s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/969d4f3e-0a24-480b-a5de-449bd477501e GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-39f45e81-670a-4426-b9e7-c53ec3d2d1e1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_empty [0.069978s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.console.rfb.test_authnone.RFBAuthSchemeNoneTestCase.test_types [0.041637s] ... ok
{3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_client_auth_invalid_fails [0.022879s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_282_deploy_templates_deploy_template_id_delete_observer [0.079270s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/faa31a9a-21f2-470c-a273-fbc91d7919e1 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-95258eff-aaa4-46f1-83a6-f81f552fc71d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_exception_in_choose_security_type_fails [0.023386s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_333_service_cannot_delete_portgroup [0.153924s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/0f73c26f-ca62-4f3f-99b4-9e1532835064 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5e43506e-422d-464f-b8d7-63ca85b15150
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 0f73c26f-ca62-4f3f-99b4-9e1532835064 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http [0.058458s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_exception_security_handshake_fails [0.043235s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_error [0.056694s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_283_chassis_post_admin [0.092615s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-48d5691e-c2e5-4f36-9c7a-8ea014c3ec09
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fail [0.040055s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_noauth [0.042920s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_334_owner_reader_can_get_node_portgroups [0.116379s] ... 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-d7ef1e29-7e7e-4f10-b0ad-dbabafaf2677
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "address": "01:03:09:ff:01:01", "name": "magicfoo", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fail_server_message [0.029554s] ... ok
{3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_host_version [0.020098s] ... ok
{3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_sec_type_cnt_zero [0.023167s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_invalid_json [0.066234s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_tenant_version [0.024760s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_284_chassis_post_member [0.109697s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-e5d82a0b-b71b-4259-ac38-44a8cec99bbb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_full_run [0.027093s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_335_lessee_reader_can_get_node_porgtroups [0.130477s] ... 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-07764a97-34a3-44c3-94d3-a6433abab10b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "ec595861-9725-4d3b-9244-ac0567c5f152", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/ec595861-9725-4d3b-9244-ac0567c5f152", "rel": "self"}, {"href": "http://localhost/portgroups/ec595861-9725-4d3b-9244-ac0567c5f152", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_parse_version [0.030358s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_mold_connection_error_exceeded [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.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_post_observer [0.067284s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-4edd6d50-8fa6-4570-90cc-6401ebd7febb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_third_party_admin_cannot_get_portgroups [0.089690s] ... 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-dc939097-b09e-426b-bffb-0db533b6ec13
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_286_chassis_get_admin [0.084485s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-f8ef6e41-b767-41c4-80c9-6abdbb7a8b1a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicWebsocketSecurityProxyTestCase.test_proxy_connect_err [0.158827s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_287_chassis_get_member [0.083634s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-dcbaf64d-1cf4-452c-80eb-0b31e83160be
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_337_service_cannot_get_portgroups [0.134225s] ... 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-c487f3fd-7629-4df1-8ef0-c20e226e5b39
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift [0.213271s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_288_chassis_get_observer [0.086596s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-b11f4acc-717d-42bb-91fc-6a7189d59a42
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicWebsocketSecurityProxyTestCase.test_proxy_connect_ok [0.149317s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_338_owner_reader_can_list_ports [0.104458s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1c0451cf-c05c-4b1c-9bd2-b894415cb88b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}, {"uuid": "fd5472fc-4250-4cf1-b3ff-a673c9f115cf", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/fd5472fc-4250-4cf1-b3ff-a673c9f115cf", "rel": "self"}, {"href": "http://localhost/ports/fd5472fc-4250-4cf1-b3ff-a673c9f115cf", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock [0.023655s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_289_chassis_detail_get_admin [0.087536s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-0bf8e38c-3e09-4441-a156-04d3f72f3289
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift_noauth [0.151678s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.052533s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_339_owner_service_can_list_ports [0.127264s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-edafeb26-2f16-4407-b0d4-22ed039869d5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}, {"uuid": "6b152e4b-8055-4a28-88ed-6e12311116bd", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/6b152e4b-8055-4a28-88ed-6e12311116bd", "rel": "self"}, {"href": "http://localhost/ports/6b152e4b-8055-4a28-88ed-6e12311116bd", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_member [0.096640s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-03246be8-f3d2-4f89-9fa5-ce957f1c4e45
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded [0.065172s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.046372s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_340_lessee_reader_can_list_ports [0.092311s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-877137f5-6c9b-4677-805d-d9cdd618845f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "8d610147-dd6d-47dc-8285-245f0e0e5d52", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/8d610147-dd6d-47dc-8285-245f0e0e5d52", "rel": "self"}, {"href": "http://localhost/ports/8d610147-dd6d-47dc-8285-245f0e0e5d52", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_291_chassis_detail_get_observer [0.144283s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-2fbfe2e0-052d-462c-925d-fa617f867694
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_error [0.051180s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_341_third_party_admin_cannot_list_ports [0.115322s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-523cafce-5040-4263-84a4-3ef7bbda9ba1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth [0.090410s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ModelsMigrationsSyncMysql.test_models_sync ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_342_owner_reader_can_read_port [0.081346s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1a686977-dece-496b-b3c9-b3daa17fe5f7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-05-29T16:57:14.871563+00:00", "updated_at": null, "address": "00:00:00:00:00:01", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_292_chassis_chassis_id_get_admin [0.150721s] ... 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-c9155cf8-ad09-4979-92c0-02a8a4e1f827
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift [0.111205s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_293_chassis_chassis_id_get_member [0.083097s] ... 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-6343b997-9473-4ecb-b1bb-868de5f84bd8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_343_owner_service_can_read_port [0.099528s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b0b7f0e7-eb6a-4d37-acfb-29d7f244cf7e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-05-29T16:57:14.978110+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.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth [0.107066s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_294_chassis_chassis_id_get_observer [0.115290s] ... 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-7c530156-5890-4079-b8b7-ba4cbc5d6b30
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_344_lessee_reader_can_read_port [0.121735s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/b07ced9a-f9d0-4ac3-9476-6f4eb2ffb2aa WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f30aa0e5-ed7d-45d2-89b3-934c814563d1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "b07ced9a-f9d0-4ac3-9476-6f4eb2ffb2aa", "created_at": "2025-05-29T16:57:15.072082+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/b07ced9a-f9d0-4ac3-9476-6f4eb2ffb2aa", "rel": "self"}, {"href": "http://localhost/ports/b07ced9a-f9d0-4ac3-9476-6f4eb2ffb2aa", "rel": "bookmark"}], "portgroup_uuid": null}
{0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty [0.129421s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_admin [0.145948s] ... 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-8988779c-4238-41b9-b9ad-ff23487f6064
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_345_third_party_admin_cannot_read_port [0.160728s] ... 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-4f1c2092-9ba9-4572-9e02-090fe5622cd0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port abfd8dbb-1732-449a-b760-2224035c6b99 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_346_owner_admin_can_add_ports [0.112436s] ... 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-079e67b6-1c1c-441a-b290-1b3446ebc7fb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_member [0.167324s] ... 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-0f2d3992-90a9-4669-9836-95f01b955b89
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_347_owner_manager_can_add_ports [0.100536s] ... 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-d0daaa9a-a43a-4fe8-b7e9-92840ca7f139
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions [0.667732s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_297_chassis_chassis_id_patch_observer [0.162930s] ... 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-ff9f1c0c-97f2-4577-b59b-77739bcebab8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port [0.413937s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_298_chassis_chassis_id_delete_admin [0.076394s] ... 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-4c8a5bff-1011-4532-9f27-1d156b50c7af
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id [0.086460s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_member [0.108135s] ... 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-0bb98346-10aa-451d-98e6-ede3c7d4cb69
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port [0.092349s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor [0.283089s] ... ok
{0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports [0.055573s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_300_chassis_chassis_id_delete_observer [0.083958s] ... 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-b177d947-de36-4bb5-b5cf-b26b3b300267
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent [0.062589s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_301_node_history_get_admin [0.092319s] ... 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-b9decc14-0a71-4f23-b5bb-b5ff3a58b87d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_348_owner_admin_cannot_add_ports_to_other_nodes [0.465511s] ... 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-76d22118-1e08-4141-9c1e-1741c89c8bcf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id [0.057593s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty [0.051265s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestNeutronNetworkActions.test__add_ip_addresses_for_ipv6_stateful [0.034695s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_302_node_history_get_member [0.115278s] ... 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-aa844184-0f21-44f4-8350-6e3cb76d3507
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 [0.034046s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_349_owner_manager_cannot_add_ports_to_other_nodes [0.135326s] ... 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-a87d22c5-f581-4059-91a3-0cadf2d39388
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 [0.051021s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_303_node_history_get_observer [0.082025s] ... 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-7be23186-8f8d-4c1a-8772-b9dd7b29da6c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_350_owner_service_cannot_add_ports_to_other_nodes [0.098697s] ... 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-803464b0-67e0-4365-aa01-6a34aee2921d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old [0.397735s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail [0.094330s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_304_node_history_get_entry_admin [0.101147s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/be807252-0feb-41b7-bde4-1a081f6badad WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-33dc8ce8-304e-4c93-9ae5-b93f7b8c67d5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_351_owner_member_cannot_add_port [0.107804s] ... 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-fcd08740-e57b-46aa-9bb8-d23af62c8e10
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_305_node_history_get_entry_member [0.070119s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4fdfd7f4-4060-4f01-9da6-b24c561bbee7 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1e6815d1-58c3-498f-b1b4-db7de59b7f49
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail [0.105694s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_306_node_history_get_entry_observer [0.072855s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/be9a65fa-f6c1-4ccb-8393-c21736303ff4 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-734c3283-244b-47d8-803e-fa1229de71e8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_352_lessee_admin_cannot_add_port [0.137856s] ... 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-820f6549-948a-480d-bb49-e54bbb47ab89
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port [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(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_353_lessee_manager_cannot_add_port [0.106612s] ... 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-f2bb4d53-955c-4cd9-8753-0c488267cb1c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB [0.337729s] ... ok
{3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_handles_missing_table [0.030777s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_354_lessee_member_cannot_add_port [0.089233s] ... 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-ff6c75ab-7098-4c0c-9cd3-d5a4cc33a2a4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports [0.128658s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_001_values ... SKIPPED: These are fake reference values for YAML templating
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_355_third_party_admin_cannot_add_port [0.123203s] ... 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-ec162218-188d-40ad-a00f-a53e294a3a19
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network [0.147931s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_002_nodes_post_admin [0.160250s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-351e58db-5109-47ac-aa68-6090878f6270
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_356_service_can_add_port [0.169770s] ... 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-90f5c5ca-7caf-43d0-8ade-0de61dbaa24f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports [0.155677s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_003_nodes_post_member [0.133558s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d76ac49c-a287-429b-96c0-7674a1ad5a70
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node [0.431608s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_004_nodes_post_observer [0.109093s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2b112b36-2b89-4205-b77e-ed17b21e85ca
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_357_service_cannot_add_ports_to_other_project [0.173686s] ... 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-c033859e-6824-4251-90b4-b40622a64637
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns [0.073031s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports_via_not_pxe [0.164843s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_005_nodes_get_node_admin [0.065889s] ... 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-b2b1865e-3174-4c70-81fd-d8cf902b44a4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_358_owner_admin_can_modify_port [0.116530s] ... 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-254e0584-1acf-4abb-a53a-2952e66886ab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid [0.148314s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member [0.148381s] ... 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-6d0755f6-225f-4a31-a426-9212b53805b8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_359_owner_manager_can_modify_port [0.160587s] ... 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-7c6a4b7b-127f-4229-ba5b-acfe9c74e328
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg [0.173751s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer [0.175180s] ... 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-109898fa-12eb-4904-a651-0382b6d633d5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_360_owner_service_can_modify_port [0.108285s] ... 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-ba1441ff-c91b-4c0d-81dd-e482e7cd52e3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version [0.397844s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network [0.134656s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_361_owner_member_cannot_modify_port [0.126041s] ... 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-d4eca1f4-5ff1-45b2-aec7-bc368c61fd51
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin [0.151522s] ... 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-e837f2ce-ded4-4a2e-b20f-5e01648543b3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old [0.253590s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network [0.158578s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_009_nodes_get_admin [0.141898s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-946b42f6-c8ed-4edd-9f40-838c443ad830
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_raises_missing_table [0.031225s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_362_lessee_admin_cannot_modify_port [0.216221s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/87a4388c-bec5-40d3-8305-608e14821e77 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1f2d1270-4d2b-46f0-82a4-3ca00cf04337
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address [0.046176s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information [0.128387s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name [0.066649s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_363_lessee_manager_cannot_modify_port [0.098152s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/b2c77224-5193-458d-982e-444be04a6644 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-950b9f90-f508-4c40-a836-302407794515
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_010_nodes_get_other_admin [0.178871s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aaca2522-b2bf-458f-a78f-1377bd873eaf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": []}
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid [0.064370s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data [0.075882s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode [0.041912s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup [0.034336s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty [0.031639s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 [0.112420s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_364_lessee_member_cannot_modify_port [0.166828s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/a2ed87a4-d3e4-430d-ac3d-8c4df7793b15 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-649caed6-9ace-415f-adb0-3bc8084a6aa6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist [0.037948s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid [0.039328s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_011_nodes_detail_get_admin [0.220354s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-18e2eb64-1a13-4049-940c-d037e1117aa6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address [0.033603s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_365_third_party_admin_cannot_modify_port [0.097336s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/68ec5366-323c-49b8-811b-0fccc50e8ba5 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-208891c6-0b1e-4043-83f9-0b7f3187139d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 68ec5366-323c-49b8-811b-0fccc50e8ba5 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist [0.032776s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap [0.155682s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_portgroups.DbportgroupTestCase.test_get_portgroup_by_id [0.069167s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false [0.075413s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist [0.035504s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_366_owner_admin_can_delete_port [0.118621s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-5d56a261-9f94-4619-aaec-0fb515d5f021
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_012_nodes_detail_get_member [0.165834s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f3336f50-9b8f-49fd-94c3-87334381a7c3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name [0.029520s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true [0.069066s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist [0.063507s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_367_owner_manager_can_delete_port [0.109480s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-33d9a700-ef8f-47a9-a4a1-634185662d3c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid [0.033444s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist [0.042189s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_013_nodes_detail_get_observer [0.159468s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-dabdc739-956d-4ea3-ad0a-f617197fc8a9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports [0.121787s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_368_owner_service_can_delete_port [0.113882s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-5c581400-19c4-4882-9a39-4f39a7841340
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list [0.065108s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted [0.036954s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id [0.036493s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail [0.122563s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_369_owner_member_cannot_delete_port [0.107855s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-75f74d1e-8715-4326-a836-0dc006ce76dd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist [0.034209s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_014_nodes_node_ident_get_admin [0.185596s] ... 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-f7a76268-1712-4c13-bc10-1a54154abdb5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup [0.039246s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address [0.032955s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race [0.125443s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_370_lessee_admin_cannot_delete_port [0.113545s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/7ae90178-b5c2-436c-bfcb-27cbb40bf540 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-95c41060-0724-4293-a389-0071a7ddc8cd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name [0.032470s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found [0.027124s] ... ok
{3} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid [0.032213s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_015_nodes_node_ident_get_member [0.149386s] ... 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-e7ff731c-9204-4a73-9028-843d20c45f70
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address [0.028747s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail [0.100108s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_371_lessee_manager_cannot_delete_port [0.121303s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/854b8d1d-6f0f-47c0-8566-5fa18e96d448 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-37809a30-ccd1-4ea9-bf2f-853ed3839a9e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid [0.039344s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_016_nodes_node_ident_get_observer [0.086279s] ... 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-0044003b-20bb-4197-8249-88cb6b790a68
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_with_description [0.039766s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports [0.098193s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.046158s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address [0.040866s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_372_lessee_member_cannot_delete_port [0.141072s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/6ea12cf9-fb84-4ee3-902a-bbccf75e172b GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9ca7a86e-476a-4db8-84e3-9c96dee37d77
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network [0.078481s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_017_nodes_node_ident_patch_admin [0.159820s] ... 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-f6f63fd8-15c4-4a5c-a196-024af99fc442
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner [0.067290s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled [0.073061s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_no_match [0.040141s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_373_third_party_admin_cannot_delete_port [0.119864s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/c4118fa4-87fc-4a35-b273-6f080d75ba5c GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e38cb8d2-ce20-4116-81c2-fca035888609
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port c4118fa4-87fc-4a35-b273-6f080d75ba5c could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_018_nodes_node_ident_patch_member [0.096836s] ... 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-d18169a7-b1f4-4345-b134-09db69ef5ac7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project [0.066205s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports [0.090966s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.030465s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id [0.032232s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_019_nodes_node_ident_patch_observer [0.140137s] ... 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-de8956aa-c272-4225-a5c3-23d54a222228
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_374_owner_reader_can_get_node_ports [0.219892s] ... 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-0e376ac4-79b9-4332-81d2-13dc6fd20636
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin [0.079018s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-82adba9a-a97d-4eed-8bad-0fcb0c85d915
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_name [0.144447s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports [0.232194s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_375_owner_service_can_get_node_ports [0.104328s] ... 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-f40546a9-72cd-45d1-b80a-6ee736288b28
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_021_nodes_node_ident_delete_member [0.089837s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-63ba020d-2ab7-42a9-bcf2-4060f0bd9db5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid [0.098586s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_376_lessee_reader_can_get_node_port [0.097561s] ... 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-e11f5078-1930-4640-b1f7-70b430302cf5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "6d4548c4-afc8-4dac-bb4b-083eb9ba3acf", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/6d4548c4-afc8-4dac-bb4b-083eb9ba3acf", "rel": "self"}, {"href": "http://localhost/ports/6d4548c4-afc8-4dac-bb4b-083eb9ba3acf", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_022_nodes_node_ident_delete_observer [0.081708s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4dd4059f-b992-473d-a3c7-a17a2ac45f8b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception [0.160954s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_list [0.089352s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down [0.066261s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_owner [0.056819s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_023_nodes_validate_get_admin [0.092569s] ... 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-3012c587-6ff9-4bbc-9b21-9c258e0a22d3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_377_third_party_admin_cannot_get_ports [0.115324s] ... 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-0574d635-3000-4f65-8442-907e2274df00
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_project [0.062329s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up [0.067406s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_024_nodes_validate_get_member [0.077979s] ... 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-e465f1f3-3529-4f68-ad92-7f17d7ba1292
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted [0.076982s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_378_service_cannot_get_ports [0.115796s] ... 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-51e6265a-ed7f-449b-8f19-836dc29e122a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_025_nodes_validate_get_observer [0.079800s] ... 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-fcfefb60-ccb8-4273-9629-e087922c8454
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface [0.121736s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_026_nodes_maintenance_put_admin [0.083653s] ... 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-d238524b-070b-4c14-9e64-b83040cd7281
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id [0.142035s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_027_nodes_maintenance_put_member [0.100317s] ... 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-222ebe20-8ce1-4e0e-b936-2a7b0b84a14e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id [0.270290s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_028_nodes_maintenance_put_observer [0.085951s] ... 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-762a5940-5185-4592-88e1-07a7d73321e2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner [0.032839s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface [0.143093s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner_no_match [0.031233s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project [0.039928s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project_no_match [0.031541s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info [0.099615s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_379_owner_reader_can_get_ports_by_portgroup [0.435604s] ... 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-663bc59a-6b0d-48e4-9a51-5d6430c49b47
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist [0.027801s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_029_nodes_maintenance_delete_admin [0.153763s] ... 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-61a4d497-e3a4-433d-ba5c-3d9564eac62e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id [0.042106s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner [0.040375s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id [0.089263s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner_no_match [0.038570s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project [0.037889s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_network_type_unmanaged [0.101193s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_030_nodes_maintenance_delete_member [0.176014s] ... 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-5ac2c18b-69c1-429c-956d-2c3ac2fd425c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project_no_match [0.032436s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_380_owner_service_cam_get_ports_by_portgroup [0.202594s] ... 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-62f3119f-e9a7-427d-805e-ceff0473e4d7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist [0.034333s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info [0.065878s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_no_match [0.057497s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info [0.053080s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_031_nodes_maintenance_delete_observer [0.142582s] ... 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-3401983a-2d29-49a4-b273-6cdbb40a9069
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_multi [0.058521s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_381_lessee_reader_can_get_ports_by_portgroup [0.165625s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/af42cc46-f7d8-412f-803a-dde4833363b2/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a4b7e661-85b4-4623-bb4d-f099146e5a8c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info [0.083889s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups [0.054158s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_single [0.120030s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin [0.225418s] ... 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-a5f05b14-a499-4394-a01e-f83e0bbf796c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_382_third_party_admin_cannot_get_ports_by_portgroup [0.184461s] ... 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-c804ecbd-4f0b-49e8-aa25-a251357a35bb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port [0.102500s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address [0.072145s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_383_service_cannot_get_ports_by_portgroup [0.093480s] ... 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-e74b8c6f-5559-4894-905c-b01bb92aacb2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid [0.059474s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_033_nodes_management_boot_device_put_member [0.156938s] ... 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-a8aa25cd-e46d-43b7-8837-a4b2d995a50d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_384_owner_reader_can_list_volume_connectors [0.085261s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-76a718d9-45f2-4987-b531-778323b6868a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}, {"uuid": "fba74588-44f7-4d27-ac37-083e21e4398a", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/fba74588-44f7-4d27-ac37-083e21e4398a", "rel": "self"}, {"href": "http://localhost/volume/connectors/fba74588-44f7-4d27-ac37-083e21e4398a", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id [0.058745s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient [0.328491s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured [0.035861s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_385_lessee_reader_can_list_volume_connectors [0.080333s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5754c7c5-428a-479b-9644-a0e16415109b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "ec494ab1-0761-49c1-b984-0b70808debcd", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ec494ab1-0761-49c1-b984-0b70808debcd", "rel": "self"}, {"href": "http://localhost/volume/connectors/ec494ab1-0761-49c1-b984-0b70808debcd", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid [0.061097s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured [0.047877s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_034_nodes_management_boot_device_put_observer [0.166299s] ... 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-9e616b75-d79f-46ff-b9f5-b4995e7f0434
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector [0.069329s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron [0.040842s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_386_third_party_admin_cannot_get_connector_list [0.082069s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-79e59e0d-98ea-4e6a-964a-ff86d101d0ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": []}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down [0.033152s] ... ok
{3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id [0.056616s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up [0.039426s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_387_owner_admin_can_post_volume_connector [0.089714s] ... 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/5ee8286d-fe45-4882-8e01-f9a152bc7651
Openstack-Request-Id: req-d8622921-8806-4a5a-a964-829507dc724e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "5ee8286d-fe45-4882-8e01-f9a152bc7651", "created_at": "2025-05-29T16:57:21.283790+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/5ee8286d-fe45-4882-8e01-f9a152bc7651", "rel": "self"}, {"href": "http://localhost/volume/connectors/5ee8286d-fe45-4882-8e01-f9a152bc7651", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid [0.061540s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down [0.050103s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_035_nodes_management_boot_device_get_admin [0.151641s] ... 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-c7925519-dc9c-4bb0-b631-bf69d677b49b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up [0.052554s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_388_owner_manager_can_post_volume_connector [0.090124s] ... 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/3c9b9d01-b193-43a4-89d7-6b5cb59d7d7d
Openstack-Request-Id: req-0ef0b813-7259-4975-81c7-73581cb5b1da
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "3c9b9d01-b193-43a4-89d7-6b5cb59d7d7d", "created_at": "2025-05-29T16:57:21.377211+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/3c9b9d01-b193-43a4-89d7-6b5cb59d7d7d", "rel": "self"}, {"href": "http://localhost/volume/connectors/3c9b9d01-b193-43a4-89d7-6b5cb59d7d7d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list [0.073522s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry [0.051675s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down [0.040670s] ... ok
{3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted [0.077825s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry [0.038913s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_389_owner_service_can_post_volume_connector [0.119630s] ... 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/9ddac3e4-9e26-4403-b8f0-bb914b812358
Openstack-Request-Id: req-4259da9f-254f-4a0b-99e1-b820938adb1b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "9ddac3e4-9e26-4403-b8f0-bb914b812358", "created_at": "2025-05-29T16:57:21.496827+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/9ddac3e4-9e26-4403-b8f0-bb914b812358", "rel": "self"}, {"href": "http://localhost/volume/connectors/9ddac3e4-9e26-4403-b8f0-bb914b812358", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id [0.038394s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_036_nodes_management_boot_device_get_member [0.189421s] ... 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-f7feeda7-b866-4993-a55b-b4754336da87
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up [0.047596s] ... ok
{3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist [0.055266s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port [0.029145s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed [0.020417s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure [0.035853s] ... ok
{3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector [0.079670s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_390_lessee_admin_cannot_post_volume_connector [0.143374s] ... 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-21c2ef4c-fc56-4322-a66a-6f9462182efb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound [0.057680s] ... ok
{3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id [0.077645s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_not_bound [0.040226s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_391_lessee_manager_cannot_post_volume_connector [0.100404s] ... 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-01bafaf7-a210-46ce-8927-6f0994260c37
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id [0.033014s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_not_bound_empty [0.037883s] ... ok
{3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid [0.030401s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_port_not_found [0.021298s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target [0.039756s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_port_osc_error [0.050957s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex [0.041176s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found [0.034629s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_392_third_party_admin_cannot_post_volume_connector [0.152002s] ... 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-a649fa9e-9d3c-4dd3-8d6c-e2c069cfafad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_reset_mac [0.023828s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid [0.032560s] ... ok
{0} ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter [0.029128s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 [0.043689s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target [0.069167s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 [0.023325s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_037_nodes_management_boot_device_get_observer [0.483339s] ... 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-869f798b-8e0a-4cb2-8917-ddf2c48464d6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 [0.021796s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id [0.039863s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 [0.023507s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 [0.034813s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid [0.047264s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_393_service_admin_cannot_post_volume_connector [0.199776s] ... 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-7afdfdc8-48c8-40ef-a8f8-11fc7b27ad66
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 [0.038483s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list [0.056100s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_07 [0.023868s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted [0.031523s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_08 [0.040999s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id [0.038870s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 [0.038649s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist [0.028545s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 [0.024614s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_038_nodes_management_boot_device_supported_get_admin [0.238199s] ... 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-7bdcf34b-834b-4647-b8dd-ae5c8535247e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 [0.029356s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id [0.027221s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 [0.020669s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_394_owner_reader_can_get_volume_connector [0.230608s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/a22adcc8-dc7b-4d0a-a306-e1d915c2e0a9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a03f0081-5d6c-4b18-97b5-2c5ee33b1633
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "a22adcc8-dc7b-4d0a-a306-e1d915c2e0a9", "created_at": "2025-05-29T16:57:22.232764+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a22adcc8-dc7b-4d0a-a306-e1d915c2e0a9", "rel": "self"}, {"href": "http://localhost/volume/connectors/a22adcc8-dc7b-4d0a-a306-e1d915c2e0a9", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 [0.028609s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist [0.048006s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 [0.037911s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 [0.027020s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target [0.070348s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_039_nodes_management_boot_device_supported_get_member [0.157596s] ... 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-f307f796-0c9e-4626-969e-65ea4ae48f2b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 [0.040820s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 [0.031184s] ... ok
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex [0.074834s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe [0.056138s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_395_lessee_reader_can_get_volume_connector [0.200334s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/61428cf1-7db1-40f4-b5f2-9a5df050a0b5 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c30136bb-3091-4fa3-b380-419a1c84c73b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "61428cf1-7db1-40f4-b5f2-9a5df050a0b5", "created_at": "2025-05-29T16:57:22.450001+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/61428cf1-7db1-40f4-b5f2-9a5df050a0b5", "rel": "self"}, {"href": "http://localhost/volume/connectors/61428cf1-7db1-40f4-b5f2-9a5df050a0b5", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id [0.060483s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_040_nodes_management_boot_device_supported_get_observer [0.161938s] ... 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-3dfb5d2a-0851-475c-8ee1-ae4cfd0fd695
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid [0.045967s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_insecure_heartbeat [0.073055s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true [0.043517s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_396_third_party_admin_cannot_get_volume_connector [0.112975s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/c8e538a8-d891-48a3-a70e-9161b33b869b WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-24a10d87-f99e-49a2-bcd2-38f55c1308cc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector c8e538a8-d891-48a3-a70e-9161b33b869b could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin [0.107090s] ... 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-14f57fad-a340-42f6-89b9-fdf7e4ea56b9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile [0.070377s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_source_path [0.115593s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params [0.033136s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_397_lessee_member_cannot_patch_volume_connectors_extra [0.104375s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/f9b6f8e0-06ad-4054-80a1-822cbc39502c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c8073cf7-497b-4d17-98db-ea395aa07bed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_042_nodes_management_inject_nmi_put_member [0.085735s] ... 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-f584cb50-5851-4e6f-a1e0-bafc79027b4f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port [0.052606s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config [0.079834s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_398_owner_admin_can_patch_volume_connectors [0.118621s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/946c03df-bf52-4416-8f6f-d0cee5c855d4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-21a95862-132d-43aa-a751-3d7cbba952e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer [0.091370s] ... 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-220bc32e-2590-41fe-98d4-3967a0b2bfab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.091061s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config_not_anaconda_boot [0.106309s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_value_verify_ca [0.076981s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_399_owner_manager_can_patch_volume_connectors [0.099316s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/bd02f13a-51a0-4f1b-83aa-e5863899a2ee WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-b2ba39fc-c8bb-4e2b-946c-18fc015034e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_044_nodes_states_get_admin [0.096352s] ... 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-41d82e81-2540-493f-886c-00540b2722c0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template [0.078114s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address [0.068509s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_has_additional_variables [0.051213s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_400_lessee_admin_cannot_patch_volume_connectors [0.099804s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/2756ef4c-b3fb-4b73-b4b0-c62c0c17c0ab WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-1f8b4d20-d0a2-42d5-9222-f7f50244527c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_missing_variable [0.034012s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_045_nodes_states_get_member [0.105176s] ... 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-9609e72d-0fa5-4269-87e7-b132a30c6d66
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.052354s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_default_noop [0.040941s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password [0.065375s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_no_source [0.054903s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_046_nodes_states_get_observer [0.099110s] ... 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-a670404b-5896-452b-8559-b373030786b7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_401_lessee_manager_can_patch_volume_connectors [0.115196s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/6564b223-99d6-41ff-9652-8f174e29f29d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-a4f37a3f-c8a0-4a59-933c-458f10df80e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username [0.046854s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_dir [0.026539s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_raises_exception_with_absolute_path [0.053802s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_file [0.026430s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_047_nodes_states_power_put_admin [0.088748s] ... 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-fcb8e5bb-f0c6-4ff2-a317-13c577ad719e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false [0.032791s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files [0.052893s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_402_owner_member_can_patch_volume_connectors [0.128171s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/28cd577a-7438-4f86-963d-e15857365dc8 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-9fb35a14-b16c-403b-81c4-4a5d1377684e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_chmod [0.033023s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises [0.038018s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_copy [0.028502s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol [0.038138s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_048_nodes_states_power_put_member [0.100965s] ... 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-355c77e8-364c-4197-8738-d84f605ea950
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol [0.031153s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_403_lessee_member_cannot_patch_volume_connectors [0.080148s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/b710d3d3-5344-40e7-b6bd-a2cdce207c00 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-910edf96-19ae-45a0-85eb-7748d1b0cdfa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_relative_path [0.055754s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol [0.061082s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_049_nodes_states_power_put_observer [0.093548s] ... 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-07eef2e8-0b5f-4445-acd9-a991f974a70e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_404_third_party_admin_cannot_patch_volume_connectors [0.095803s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/fea80c45-272f-45df-a2db-c08812549be8 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-bc07ee84-3a78-4d8f-b213-8f675e1d890d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector fea80c45-272f-45df-a2db-c08812549be8 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols [0.045726s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe [0.101358s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_false [0.027416s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_050_nodes_states_boot_mode_put_admin [0.077522s] ... 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-4b41518c-ff27-4c29-955b-1d5da48f0fef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_true [0.046309s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_405_owner_admin_can_delete_volume_connectors [0.088390s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/2bf25fc2-690c-446a-82b3-7c35336abd2e GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-e18934fc-fde0-4c7c-a1ed-d80a03ad0635
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_default_value [0.048051s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout [0.107225s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_051_nodes_states_boot_mode_put_member [0.085147s] ... 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-64345ffe-70e3-4fc7-9a5f-95b0553c0e34
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_string_false [0.029254s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_406_owner_manager_can_delete_volume_connectors [0.077152s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/0400f26e-6a75-4aeb-8a4f-37b4ca371a3e GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-2a685273-0084-4732-a88a-1e8f19c7cf09
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target [0.031717s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware [0.024151s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot [0.082480s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_052_nodes_states_boot_mode_put_observer [0.083472s] ... 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-346c4b82-4eef-4ecc-8a0b-00a1c3b3df8e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file [0.034415s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_407_owner_service_can_delete_volume_connectors [0.097560s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/6bbb9f1a-fdb9-4ea2-a58c-ae1ba32b309c GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-8be7b09e-5503-42d6-adad-2f385caef927
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware [0.026393s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists [0.087518s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_408_lessee_admin_can_delete_volume_connectors [0.096206s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/008f7958-2693-42e1-98bf-56b0a37c2121 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-eea04de9-5434-4ba8-bc3f-6f190b31b39f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_053_nodes_states_secure_boot_put_admin [0.137604s] ... 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-5f76be9f-4d25-41c2-887f-bca55237f168
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_boot_iso [0.106770s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_409_lessee_manager_can_delete_volume_connectors [0.077863s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/e2d65dc0-5cab-4cb9-be1e-4999379ee99d GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-ead84138-27aa-4cca-8eb3-342382880f0e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_054_nodes_states_secure_boot_put_member [0.079089s] ... 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-9eb71702-cb85-478b-93bf-7104082beef1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_ipa_debug [0.070842s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_410_third_party_admin_cannot_delete_volume_connector [0.074712s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/c8c080bd-a2a4-4cba-b00a-ce441d373c05 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-350d1500-07d6-49f5-9099-531c8382d422
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector c8c080bd-a2a4-4cba-b00a-ce441d373c05 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to [0.247069s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url [0.046382s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_055_nodes_states_secure_boot_put_observer [0.104099s] ... 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-f1c70d95-0089-4159-9076-f9d9ae6e6950
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_local_boot [0.093458s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_411_service_cannot_delete_volume_connector [0.077766s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/3ef495ce-7278-4b85-a348-140d7546fbbd GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2e82a0b3-33f9-432e-8945-7f4af7669d95
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 3ef495ce-7278-4b85-a348-140d7546fbbd could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware [0.044721s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue [0.070671s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image [0.075168s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_056_nodes_states_provision_put_admin [0.128914s] ... 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-8fc0ab9b-961c-46c1-932c-9bc647b1f7b7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware [0.046973s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift [0.106214s] ... ok
{3} 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.034563s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_057_nodes_states_provision_put_member [0.084900s] ... 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-bc0ca4f2-c405-45c6-9c00-b51df0fcef4a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift [0.036147s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver [0.038409s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift [0.035035s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_058_nodes_states_provision_put_observer [0.110191s] ... 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-35ea6abe-d2f3-4140-9beb-fc7a83e636f6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_412_owner_reader_can_get_targets [0.332578s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fb1713e9-c153-470e-872f-d98f08a21088
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}, {"uuid": "7a84c9fa-9cc0-41d6-ac1e-4f26555dc3b7", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/7a84c9fa-9cc0-41d6-ac1e-4f26555dc3b7", "rel": "self"}, {"href": "http://localhost/volume/targets/7a84c9fa-9cc0-41d6-ac1e-4f26555dc3b7", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver [0.042732s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_timeout [0.172561s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me [0.037928s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me [0.039376s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_413_lesse_reader_can_get_targets [0.081209s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8013d435-b7d8-40f0-90c8-9a96bc4afbc4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "6e17fa33-2556-4f1a-90f0-16bb3dde4ec1", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6e17fa33-2556-4f1a-90f0-16bb3dde4ec1", "rel": "self"}, {"href": "http://localhost/volume/targets/6e17fa33-2556-4f1a-90f0-16bb3dde4ec1", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_059_nodes_states_raid_put_admin [0.119905s] ... 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-d3aaab3e-f8d5-4ed3-91f4-2c368c0f5a68
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me [0.047814s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_partition [0.138429s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components [0.025528s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_414_third_party_admin_cannot_get_target_list [0.075293s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-768110d2-d4f3-4127-973b-f2224bf57610
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": []}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails [0.040435s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes [0.019971s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor [0.019449s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member [0.156350s] ... 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-99264839-79a9-4c7c-bd99-553131f7fd1a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url [0.031754s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_415_owner_reader_can_get_volume_target [0.128492s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/43b18f12-7033-4235-906e-f66f2307b2ec WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7cfff0bf-9797-4c29-8fd5-c3597b47dd7c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "43b18f12-7033-4235-906e-f66f2307b2ec", "created_at": "2025-05-29T16:57:24.668165+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/43b18f12-7033-4235-906e-f66f2307b2ec", "rel": "self"}, {"href": "http://localhost/volume/targets/43b18f12-7033-4235-906e-f66f2307b2ec", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info [0.030622s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter [0.020035s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component [0.031081s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter [0.027934s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_061_nodes_states_raid_put_observer [0.130575s] ... 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-cc0e3614-3943-4926-b5d7-e7fe6375df1f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum [0.023094s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component [0.029736s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_wdi [0.283782s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_416_lessee_reader_can_get_volume_target [0.150014s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/5e8bc888-34dc-4d7e-99c1-8955c11551fc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e38f9741-71e7-4036-a961-164cd1c8d9a1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "5e8bc888-34dc-4d7e-99c1-8955c11551fc", "created_at": "2025-05-29T16:57:24.776503+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/5e8bc888-34dc-4d7e-99c1-8955c11551fc", "rel": "self"}, {"href": "http://localhost/volume/targets/5e8bc888-34dc-4d7e-99c1-8955c11551fc", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component [0.020630s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_clean_up_ipxe_config_uefi [0.060589s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_062_nodes_states_console_get_admin [0.115476s] ... 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-ec366000-143a-42a9-8385-f163b0cca125
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_417_third_party_admin_cannot_get_volume_target [0.081481s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/16a57ad1-41f5-4410-9837-1b04b7fe3e4a WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-9c5a3506-9b78-4259-8773-c008cdf9ea8f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 16a57ad1-41f5-4410-9837-1b04b7fe3e4a could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to [0.082424s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_bios [0.083440s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_063_nodes_states_console_get_member [0.086193s] ... 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-2ddd0cbf-4308-4354-a93f-669d20b9761f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file [0.089810s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_418_owner_admin_create_volume_target [0.121659s] ... 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/a3aafef3-3335-498b-a520-5298012ff0d1
Openstack-Request-Id: req-8f9bde5f-f51f-49d2-afee-7251dd68fa45
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "a3aafef3-3335-498b-a520-5298012ff0d1", "created_at": "2025-05-29T16:57:25.058870+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a3aafef3-3335-498b-a520-5298012ff0d1", "rel": "self"}, {"href": "http://localhost/volume/targets/a3aafef3-3335-498b-a520-5298012ff0d1", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_064_nodes_states_console_get_observer [0.076082s] ... 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-338253c5-1432-4b8b-9cc1-99fd6cd52e0b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi [0.096494s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails [0.090122s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6 [0.073820s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_419_owner_service_create_volume_target [0.122780s] ... 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/68351681-6d82-42c1-9cb1-1540c869655a
Openstack-Request-Id: req-7eaf09a6-c1ad-4ff6-b0e5-542fa71d61d6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "68351681-6d82-42c1-9cb1-1540c869655a", "created_at": "2025-05-29T16:57:25.167893+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/68351681-6d82-42c1-9cb1-1540c869655a", "rel": "self"}, {"href": "http://localhost/volume/targets/68351681-6d82-42c1-9cb1-1540c869655a", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_065_nodes_states_console_put_admin [0.110509s] ... 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-037fd119-cf6c-41e8-8d7f-8ffc2e9c396e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6_uefi [0.121855s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_420_owner_manager_create_volume_target [0.192762s] ... 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/47fcfde3-dc3e-4884-8dba-73642d35c0f8
Openstack-Request-Id: req-fa444c09-648a-424b-b7d7-31fba94bdbcd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "47fcfde3-dc3e-4884-8dba-73642d35c0f8", "created_at": "2025-05-29T16:57:25.368995+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/47fcfde3-dc3e-4884-8dba-73642d35c0f8", "rel": "self"}, {"href": "http://localhost/volume/targets/47fcfde3-dc3e-4884-8dba-73642d35c0f8", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_066_nodes_states_console_put_member [0.187750s] ... 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-345aac62-6521-414d-ba65-cb9c5949adc8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options [0.091350s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_hexadecimal_lunid [0.054593s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type [0.051097s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_067_nodes_states_console_put_observer [0.142005s] ... 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-59facc1c-dc04-4bf5-abcd-2a664b2bb74a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file [0.422574s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_volume_type [0.038301s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_421_lessee_admin_create_volume_target [0.188459s] ... 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/9b87089f-25f2-4d0b-8f77-00ae88a5ceb1
Openstack-Request-Id: req-2744f1f8-bbc2-4212-9907-2bfeb555b9b5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "9b87089f-25f2-4d0b-8f77-00ae88a5ceb1", "created_at": "2025-05-29T16:57:25.551969+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9b87089f-25f2-4d0b-8f77-00ae88a5ceb1", "rel": "self"}, {"href": "http://localhost/volume/targets/9b87089f-25f2-4d0b-8f77-00ae88a5ceb1", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode [0.020719s] ... ok
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config [0.046757s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url [0.029170s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_068_nodes_vendor_passthru_methods_get_admin [0.093117s] ... 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-010bb12d-d22a-461a-a7a7-47a95210c750
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config [0.042947s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties [0.048531s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_422_lessee_manager_create_volume_target [0.102811s] ... 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/64ae7821-ad88-43f9-9b41-63e8ccdf72c5
Openstack-Request-Id: req-b4494316-2c80-4a68-bbb0-33257586a24a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "64ae7821-ad88-43f9-9b41-63e8ccdf72c5", "created_at": "2025-05-29T16:57:25.668364+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/64ae7821-ad88-43f9-9b41-63e8ccdf72c5", "rel": "self"}, {"href": "http://localhost/volume/targets/64ae7821-ad88-43f9-9b41-63e8ccdf72c5", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping [0.024596s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_069_nodes_vendor_passthru_methods_get_member [0.063709s] ... 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-8ca562fd-ecb8-4f1e-a37e-c2b2cf1fa792
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot [0.024936s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_423_third_party_admin_cannot_create_volume_target [0.093535s] ... 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-5468c262-c12c-4e5b-b7f0-1ec8faf89e2e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_070_nodes_vendor_passthru_methods_get_observer [0.074022s] ... 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-47919e0b-c9a5-4b8b-960c-3df813fefd5c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok [0.116949s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root [0.073500s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok [0.049691s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties [0.054103s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok [0.057793s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema [0.059593s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_424_owner_member_can_patch_volume_target [0.141598s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/218232f1-a073-4107-a055-0ffb31e1f305 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-9dbcc914-7050-4aef-8c08-2ded4559e2c2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes [0.051038s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero [0.072349s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay [0.042584s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off [0.050894s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_071_nodes_vendor_passthru_get_admin [0.243552s] ... 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-fca5fe59-8477-416d-8625-4f162ebdacbd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty [0.036937s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_425_owner_service_can_patch_volume_target [0.130426s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/8f56f017-e2c1-4fae-9675-df676e9d1717 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-50afb698-a94a-435a-aa57-61f2f5dbf787
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 [0.052939s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes [0.046255s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_072_nodes_vendor_passthru_get_member [0.073274s] ... 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-1c9df4f6-3abd-4ae9-b538-ca0f83272fd4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 [0.058113s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX [0.064463s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_426_lessee_admin_can_patch_volume_target [0.108391s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/16d4d879-d210-4436-953f-4647088d1c12 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-f6167dd4-d5c9-4c58-bd91-bb5be486d664
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate [0.042017s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_release_mappings.GetObjectVersionsTestCase.test_get_object_versions [0.022849s] ... ok
{0} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects [0.019280s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_073_nodes_vendor_passthru_get_observer [0.111225s] ... 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-3983124d-0bc2-4d74-b855-e0c840e8d807
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases [0.019360s] ... ok
{0} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects [0.023475s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates [0.068566s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_427_lessee_manager_can_patch_volume_target [0.104855s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/894a5bb9-175d-483e-bd72-ccdc55fe7307 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-61f6049a-dfcd-48e6-a317-38cc31b2380f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_074_nodes_vendor_passthru_post_admin [0.078039s] ... 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-eaf5349f-520c-4e09-ba9e-1baa1319a122
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_clear_flag [0.057120s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_error [0.062254s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_075_nodes_vendor_passthru_post_member [0.089365s] ... 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-c290f127-3062-4cde-ad8a-41db88a03cf4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_428_lessee_member_cannot_patch_volume_target [0.118008s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/2810e03e-fea7-4206-8add-5d8bebbed351 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3cda9c61-4e9d-4f5a-b44c-e7dfe93bea53
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_not_supported [0.055406s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_076_nodes_vendor_passthru_post_observer [0.068007s] ... 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-0792c8d6-3d6d-4172-9059-945b2050cf89
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_429_third_party_admin_cannot_patch_volume_target [0.080625s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/6f1e38d7-fee7-451d-b9fc-ba05a5ff7eb2 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-48cfcbab-ad4b-40a8-a6dc-4966f8462164
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 6f1e38d7-fee7-451d-b9fc-ba05a5ff7eb2 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_completed [0.066955s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_077_nodes_vendor_passthru_put_admin [0.088609s] ... 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-b06db8e7-f8dd-45cf-8f65-1aba4d7b34c0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_430_service_cannot_patch_volume_target [0.102905s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/1c8d300b-b17a-40ab-a942-53d2edad1d2b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6e58383a-0e14-4e0d-b7cf-71b3e50d7460
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1c8d300b-b17a-40ab-a942-53d2edad1d2b could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_078_nodes_vendor_passthru_put_member [0.065370s] ... 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-0e8955f1-a891-4c2e-aa9a-d42905cf7e53
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd [0.134290s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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__ [0.418095s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_079_nodes_vendor_passthru_put_observer [0.084343s] ... 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-a8935d49-0e1b-4380-809f-58b113aaa55a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_431_owner_admin_can_delete_volume_target [0.147288s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/8d32f04f-5350-41f2-b4ca-5cfff4d89cb4 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-e08eb03f-0dc1-43f5-9be6-a4dabce7e0f6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error [0.110814s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_080_nodes_vendor_passthru_delete_admin [0.065061s] ... 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-97b77dad-d0b0-4e1a-bef7-e283ee9cdaff
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero [0.066668s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_432_owner_manager_can_delete_volume_target [0.098529s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/cc18e36c-6465-4e2c-bff0-7c19ff01ac2d GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-832fa5cc-f254-4217-b185-b786fc8124dd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_081_nodes_vendor_passthru_delete_member [0.083280s] ... 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-c4fcd575-4c70-4a12-a0d1-c0dfb4643cee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern [0.055854s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern [0.047559s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_082_nodes_vendor_passthru_delete_observer [0.085535s] ... 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-e116cd30-61f0-4776-be01-ef070ab138ee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_433_owner_manager_can_delete_volume_target_service [0.101495s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1bc35648-a0aa-45ea-b468-8334ce58206d GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-9935eb9a-c345-47f4-be16-f6b9bd6bab92
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern [0.049239s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_083_nodes_traits_get_admin [0.103124s] ... 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-c28dde7c-9120-4727-9beb-e1751e0c0370
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd [0.109654s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_084_nodes_traits_get_member [0.097742s] ... 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-c5541d8d-1dd1-48ff-82a0-c866664970b8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_434_lessee_admin_can_delete_volume_target [0.243588s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/fc245541-86aa-4813-80ad-f9cf09482f1e GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-f1da231f-e64a-406b-8bfd-bb4e6bff73f9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_085_nodes_traits_get_observer [0.075889s] ... 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-2d8f2b43-17ca-41da-86a4-90cbed740316
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done [0.138206s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_435_lessee_manager_can_delete_volume_target [0.099874s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/5a54f48f-be03-486c-b21e-500245e0f6f0 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-0e29cc4e-aa49-436a-9b9f-287e06768e47
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available [0.071947s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_086_nodes_traits_put_admin [0.089168s] ... 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-8b2128a2-b587-4356-b8b8-bc329a1bf029
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase [0.053057s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_436_owner_member_cannot_delete_volume_target [0.077744s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/eb6b1151-e923-48cb-8f89-08bedeb53b14 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6b119123-b3ca-4bdb-98c2-0b2b3e1780dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_087_nodes_traits_put_member [0.097875s] ... 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-1938cbc9-6e51-4256-9695-94fa1cdee231
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase_ilo_error [0.082888s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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_fail_clean [0.045227s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_088_nodes_traits_put_observer [0.072751s] ... 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-a2c9cb76-b22c-40fb-8cd7-3fafe86a70ab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_437_lessee_member_cannot_delete_volume_target [0.168962s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/d883c64f-676b-45a4-860b-cf1631e2e1a5 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ca915b95-26c9-43a5-867f-458913edc414
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy [0.071817s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_089_nodes_traits_delete_admin [0.071924s] ... 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-4d818026-6ba2-42d7-8d69-9a5769c3a5ad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported [0.049437s] ... ok
{0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object [0.942036s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_438_third_party_admin_cannot_delete_volume_target [0.085795s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/c1d15087-7264-4afc-aa1f-6cc8f4c2399b GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d680be3f-fc7f-4cf7-adea-cb8da9b320a9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target c1d15087-7264-4afc-aa1f-6cc8f4c2399b could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok [0.042607s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_090_nodes_traits_delete_member [0.113055s] ... 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-a2153174-c858-4842-8413-95786ab23f78
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_439_service_cannot_delete_volume_target [0.087842s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/57889109-9a80-45b0-952a-9d192bc45ab8 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ec7a3a7c-06a2-4853-a975-cc5723a48050
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 57889109-9a80-45b0-952a-9d192bc45ab8 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_clean [0.078017s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_091_nodes_traits_delete_observer [0.071915s] ... 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-fc9b5ace-6634-4235-b3a2-0a923fb30824
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_deploy [0.060418s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_440_owner_reader_can_get_volume_connectors [0.102720s] ... 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-2268564d-2ca4-4ddf-bbbd-99ee9f10da19
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_092_nodes_traits_trait_put_admin [0.082135s] ... 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-9a544471-53bc-4154-b9c3-bf1092537fdc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_clean [0.082839s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_093_nodes_traits_trait_put_member [0.090244s] ... 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-0b20d44a-5604-4f30-9d0a-c00767d1ee7b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_441_owner_service_can_get_volume_connectors [0.114541s] ... 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-d830c4cd-bb80-4d35-951b-088b41c9569c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_deploy [0.105400s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_094_nodes_traits_trait_put_observer [0.092247s] ... 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-7fbbbd1c-4fb0-4125-a9e0-8df988ac4a2f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_442_lessee_reader_can_get_node_volume_connectors [0.104724s] ... 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-1fdf1024-eaed-447e-b3fd-1ee72a9f93e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "2a3c3127-d651-4a62-b9c6-9cd9f489323a", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2a3c3127-d651-4a62-b9c6-9cd9f489323a", "rel": "self"}, {"href": "http://localhost/volume/connectors/2a3c3127-d651-4a62-b9c6-9cd9f489323a", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_clean [0.096388s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_admin [0.094645s] ... 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-465d79a1-456f-4039-92aa-7790a49d98c0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails [0.500259s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_deploy [0.057489s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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_with_logs_clean [0.056121s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_096_nodes_traits_trait_delete_member [0.084485s] ... 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-13c3477c-651c-42d5-bcdb-9c6a930d7d91
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_097_nodes_traits_trait_delete_observer [0.067484s] ... 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-3e162547-8685-4ce5-b223-a48505c29a55
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_443_third_party_admin_cannot_get_node_volume_connectors [0.254807s] ... 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-b47d34a7-deae-49cc-87ad-d2753a8cbc94
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_098_nodes_vifs_get_admin [0.077657s] ... 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-00431e4c-96f0-4b46-806c-ba833971732b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_444_service_cannot_get_node_volume_connectors [0.100728s] ... 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-ea96d8a2-86a7-487e-b91d-1d35f14bcd32
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_member [0.087279s] ... 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-7b7f19c5-dfdc-441a-868b-3112266c3d1f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_deploy [0.307621s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_445_owner_reader_can_get_node_volume_targets [0.094942s] ... 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-13bda8b1-3bd3-4c96-9398-25cb75c8d203
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_100_nodes_vifs_get_observer [0.074611s] ... 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-c72d9b30-9a8c-4eff-86e8-a9b6dda4d55b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_clean [0.083129s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_446_owner_service_can_read_get_node_volume_targets [0.098819s] ... 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-10720d27-e82e-4a64-bae2-b9c393699be4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_101_nodes_vifs_post_admin [0.103262s] ... 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-279e2392-bee5-43b4-8471-8d10d6b2cfe4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_object_fails [0.483776s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_deploy [0.054712s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_447_lessee_reader_can_get_node_volume_targets [0.085619s] ... 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-4568db92-9e1b-4393-b773-9ab92daceb5b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "882e483d-dd20-443d-b81e-3dbdbb388aa5", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/882e483d-dd20-443d-b81e-3dbdbb388aa5", "rel": "self"}, {"href": "http://localhost/volume/targets/882e483d-dd20-443d-b81e-3dbdbb388aa5", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_102_nodes_vifs_post_member [0.079850s] ... 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-aaa22a54-8555-4861-84ca-d152df131cd8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license [0.052108s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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_activate_license_no_or_invalid_format_license_key [0.052281s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_448_third_part_admin_cannot_read_node_volume_targets [0.080000s] ... 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-8a3f657f-ce10-474e-bf8e-e0fadd8df51e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_103_nodes_vifs_post_observer [0.086187s] ... 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-88523016-d9f3-4035-933c-ad930c214986
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate [0.067186s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_449_service_cannot_read_node_volume_targets [0.089139s] ... 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-b4f994b0-61a0-4b4c-a68e-067f52bd8be7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_fileurl [0.063172s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_450_owner_reader_cannot_get_drivers [0.077222s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-9ad1c0bf-b9e3-464e-b05a-503745a2ce51
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_httpurl [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.api.test_acl.TestRBACProjectScoped.test_project_scoped_451_lessee_reader_cannot_get_drivers [0.079778s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-8225248a-1ac6-4830-9a25-0fa4710807b7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_104_nodes_vifs_node_vif_ident_delete_admin [0.265512s] ... 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-36558d3f-ce7e-416f-9a67-1c6e3e750fef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_452_third_party_admin_cannot_get_drivers [0.089733s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-21d4b895-4205-4736-b4e1-b27a26f8b72d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_105_nodes_vifs_node_vif_ident_delete_member [0.092843s] ... 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-3abe59a0-729a-42e3-827a-9f0540aef64f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_url_exception [0.161509s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_453_service_cannot_get_drivers [0.107205s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-e4758d14-fcfd-4f40-a3b4-9d07744530e9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target [0.080875s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_106_nodes_vifs_node_vif_ident_delete_observer [0.106123s] ... 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-4489ae8a-e0af-4c0f-80fd-669304afa6f9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_454_owner_reader_cannot_get_drivers_vendor_passthru [0.076372s] ... 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-645285ed-9f3b-484f-8134-87a8eacbb3e6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed [0.061644s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_455_lessee_reader_cannot_get_drivers_vendor_passthru [0.074832s] ... 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-9e2006ba-9040-4d3b-bca3-327ddcc3fbd2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios [0.068010s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_107_nodes_management_indicators_get_admin [0.156943s] ... 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-fde15911-5bd0-4886-a66f-23fc6da052bd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys [0.057320s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.815899s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_456_third_party_admin_cannot_get_drivers_vendor_passthru [0.110085s] ... 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-e55c2254-6c3e-4012-bffa-fe4f6e2cc5c6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr [0.067883s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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.073202s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_108_nodes_management_indicators_get_member [0.161389s] ... 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-5d8d5897-4305-402a-abbf-9913bed98c16
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_457_service_cannot_get_drivers_vendor_passthru [0.150680s] ... 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-d64370f9-8ba0-4138-bac0-df4310973f99
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail [0.094328s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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_next_boot [0.062113s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_458_owner_reader_can_get_bios_setttings [0.095314s] ... 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-20230885-f137-4f9c-9bf6-8189a0bbbd18
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"bios": []}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_109_nodes_management_indicators_get_observer [0.168517s] ... 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-53310e15-cda1-444a-9901-a1090f65fff1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent [0.067716s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_459_lessee_reader_can_get_bios_settings [0.103747s] ... 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-09eec7d7-5f41-4849-a821-9c3bd089e15a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"bios": []}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail [0.066592s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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_mode [0.044763s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_110_nodes_management_indicators_component_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail [0.050822s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_460_third_party_admin_cannot_get_bios_settings [0.174379s] ... 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-49e1601d-38f6-44f4-ae99-b8701806b51a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties [0.065467s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.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.api.test_acl.TestRBACProjectScoped.test_project_scoped_461_service_can_get_bios_setttings_owner_project [0.111911s] ... 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-ca726d11-6049-4aa5-bd4d-a33e5487f142
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"bios": []}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data [0.165603s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_462_service_cannot_get_bios_setttings [0.129987s] ... 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-93734829-fce1-4bed-aa51-f80f20f556a1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_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.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices [0.124150s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_463_owner_reader_cannot_get_conductors [0.070045s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-20d8c4c8-c9cf-4b3f-8f42-5b22fa3c9403
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_container_fails [0.901517s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_1___legacy_bios_only_____bios___ [0.066214s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_464_lessee_reader_cannot_get_conductors [0.066123s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-fefac271-ece8-430c-8687-583ec1312908
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_113_portgroups_get_admin [0.123539s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d2dd38ad-df9f-4496-a349-c0e55ce9e606
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_2___uefi_only_____uefi___ [0.042470s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_465_third_party_admin_cannot_get_conductors [0.071747s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-44d0363e-bd11-4076-b365-a9e82cca8d55
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_3___legacy_bios_and_uefi_____uefi____bios___ [0.049338s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_466_owner_reader_can_get_allocations [0.080973s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cd7eb178-9dc9-406e-8727-4ce8810facc2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "bf3fa3e4-eb18-4c6a-8a5b-70f3b598f632", "created_at": "2025-05-29T16:57:30.483138+00:00", "updated_at": "2025-05-29T16:57:30.484448+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/bf3fa3e4-eb18-4c6a-8a5b-70f3b598f632", "rel": "self"}, {"href": "http://localhost/allocations/bf3fa3e4-eb18-4c6a-8a5b-70f3b598f632", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi [0.070501s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_114_portgroups_get_member [0.167149s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-5fb78a5e-aa9c-4ce0-be45-4f9e060f96c3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_467_lessee_reader_can_get_allocations [0.081447s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6dda1f5f-31bb-4804-9242-38901468953c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "9e297ec2-f17c-4b8d-b8f2-ce697407264f", "created_at": "2025-05-29T16:57:30.561535+00:00", "updated_at": "2025-05-29T16:57:30.563337+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/9e297ec2-f17c-4b8d-b8f2-ce697407264f", "rel": "self"}, {"href": "http://localhost/allocations/9e297ec2-f17c-4b8d-b8f2-ce697407264f", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed [0.109716s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_468_owner_reader_can_get_their_allocation [0.070931s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/d08bba2c-6099-4f93-b897-0cc24869a1c3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9e7e13ab-1e8a-4685-9702-b6f7d851f6b6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d08bba2c-6099-4f93-b897-0cc24869a1c3", "created_at": "2025-05-29T16:57:30.628404+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/d08bba2c-6099-4f93-b897-0cc24869a1c3", "rel": "self"}, {"href": "http://localhost/allocations/d08bba2c-6099-4f93-b897-0cc24869a1c3", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_115_portgroups_get_observer [0.143659s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4ff4066e-a463-4852-9c90-5dbbb341dbde
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_object_fails [0.426744s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_469_lessee_reader_can_get_their_allocation [0.068927s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/ae3d1383-310d-44d5-9396-2efbe226019f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-affc4e29-72e0-4731-868a-1957312e46ee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "ae3d1383-310d-44d5-9396-2efbe226019f", "created_at": "2025-05-29T16:57:30.707867+00:00", "updated_at": "2025-05-29T16:57:30.709123+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/ae3d1383-310d-44d5-9396-2efbe226019f", "rel": "self"}, {"href": "http://localhost/allocations/ae3d1383-310d-44d5-9396-2efbe226019f", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported [0.114907s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_470_owner_admin_can_delete_their_allocation [0.070409s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/c2ba2d40-b1df-49e7-a95a-792f6c83fbbe GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-706206cf-9623-426a-be58-2141000043a8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default [0.124731s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_116_portgroups_post_admin [0.176117s] ... 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-85abaadf-5587-44f8-b7ec-d31fcf2cd6d2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_471_owner_manager_can_delete_their_allocation [0.080915s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/c87be860-7bcf-4fcd-9dc4-e5acbb685455 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-d2735881-15fa-40b4-86aa-48cec2636896
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_472_lessee_admin_can_delete_their_allocation [0.099824s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/5d3e0120-958c-4125-8202-ef770dd38255 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-1a26cd8a-fd12-4d20-b061-c7e443fa219c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo [0.151934s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_117_portgroups_post_member [0.177575s] ... 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-06a54d13-d58d-4f25-b057-7a1b3ce76dfa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password [0.129253s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_118_portgroups_post_observer [0.175286s] ... 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-a3b884eb-3168-458c-b7f7-64adfc8fec81
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_473_lessee_manager_can_delete_their_allocation [0.299109s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/90819741-4859-46f8-bebb-1a0d59af03f6 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-50a4d248-152d-413b-9c3b-58f12696107b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok [0.151033s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.589923s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_119_portgroups_detail_get_admin [0.136193s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e774124d-f444-46f4-b9b4-4428c0b58f74
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_474_owner_member_can_delete_their_allocation [0.075047s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/5a16436a-1542-40a5-9459-6fc84cb049dc GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-1bc29d2b-acbd-461c-b929-68d885ce9461
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok [0.098890s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_120_portgroups_detail_get_member [0.070032s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d08a9f15-9324-47c1-a1e4-fd769ac7aa9e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_475_lessee_member_can_delete_their_allocation [0.076357s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/48505602-40ff-4075-8134-352cc7e834c2 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-68ce82b8-5973-403e-8434-9db40f3b72c7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default [0.070089s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_121_portgroups_detail_get_observer [0.067366s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-04b522d6-96b3-4414-82b4-d0f9ca15c635
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_476_owner_member_can_patch_allocation [0.105852s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/d6bc5ab3-8e00-4c54-8e3c-e10b5993ced7 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2e0191d7-27fc-40a7-9e52-e182d17c924d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d6bc5ab3-8e00-4c54-8e3c-e10b5993ced7", "created_at": "2025-05-29T16:57:31.484593+00:00", "updated_at": "2025-05-29T16:57:31.542497+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/d6bc5ab3-8e00-4c54-8e3c-e10b5993ced7", "rel": "self"}, {"href": "http://localhost/allocations/d6bc5ab3-8e00-4c54-8e3c-e10b5993ced7", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_security_parameters_update [0.090063s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_122_portgroups_portgroup_ident_get_admin [0.105319s] ... 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-cad40ebb-6b17-443a-babb-9a9283ae7c6f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_477_lessee_member_can_patch_allocation [0.097750s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/0d57137d-40fe-435c-9e1c-515d9b24a13d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-83e74bce-fcf8-4de0-adde-da9801db8938
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0d57137d-40fe-435c-9e1c-515d9b24a13d", "created_at": "2025-05-29T16:57:31.604841+00:00", "updated_at": "2025-05-29T16:57:31.635900+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/0d57137d-40fe-435c-9e1c-515d9b24a13d", "rel": "self"}, {"href": "http://localhost/allocations/0d57137d-40fe-435c-9e1c-515d9b24a13d", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail [0.150054s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_123_portgroups_portgroup_ident_get_member [0.132197s] ... 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-5123e3ca-767e-45ce-926b-793d9b9f04f5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc [0.439081s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_478_third_party_admin_can_get_allocations [0.130303s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8ad73088-6eb8-4628-b60f-24aa511e3edc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": []}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device [0.091980s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_124_portgroups_portgroup_ident_get_observer [0.143195s] ... 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-b0929d2a-570b-4f33-ab1d-7d2a04991812
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_479_third_party_admin_can_create_allocation [0.098432s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-59ac9bcd-f47d-44b3-94cb-5dd2d8b30f4c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok [0.097031s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_480_third_party_admin_cannot_create_allocation_with_owner_node [0.096382s] ... 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-60a0d70f-cd34-45b0-82bc-c291816504bf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_125_portgroups_portgroup_ident_patch_admin [0.149923s] ... 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-ed5b6de7-7691-4721-8e60-9f51e455663d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail [0.103571s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_481_third_party_admin_cannot_create_allocation_with_candidates_not_owned [0.107823s] ... 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-2ef5d3fd-0431-4cfa-9fdd-583fd366b91a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881, 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found [0.357652s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true [0.143760s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_126_portgroups_portgroup_ident_patch_member [0.199410s] ... 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-0ae048b7-9d61-40ca-b8d0-5514baa59899
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_482_owner_admin_can_create_allocation_with_their_uuid [0.168374s] ... 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-5bdd771b-436b-4978-9ae5-b21b48c91dde
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode [0.112617s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_483_owner_manager_can_create_allocation_with_their_uuid [0.081770s] ... 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-86e38d72-9656-4a5d-8446-8a3dabcb413b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode_fail [0.065124s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_patch_observer [0.147607s] ... 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-2f98e4fa-478c-4f9b-8424-08686ecb093b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_484_third_party_admin_cannot_read_an_allocation [0.077897s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/5ddade48-1137-4b63-a68a-c74fed67a59f WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-80874a29-3e93-40f3-92c6-3667c905c064
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 5ddade48-1137-4b63-a68a-c74fed67a59f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed [0.065861s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_485_third_party_admin_cannot_patch_an_allocation [0.076852s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/e0bb10b9-b156-4352-8da9-6e1c7163b0ba WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-97a93184-3f7e-4a3d-b354-b03727a94db4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation e0bb10b9-b156-4352-8da9-6e1c7163b0ba could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios [0.072276s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_128_portgroups_portgroup_ident_delete_admin [0.172571s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5eee539f-701f-4f92-9457-f01ae158a904
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties [0.063065s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_486_third_party_admin_cannot_delete_an_allocation [0.084196s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/b40984b8-b2c6-43d9-a220-c6d52516595e GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-0eba2e52-a5ef-4eef-b5a4-bc027ad6390b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation b40984b8-b2c6-43d9-a220-c6d52516595e could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth [0.076436s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_129_portgroups_portgroup_ident_delete_member [0.095437s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f18e6097-284b-4d1a-b869-27e608a6f232
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_487_owner_reader_can_read_node_allocation [0.093271s] ... 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-129ea750-ab5c-4c56-91b0-f3ef8b888aac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "c4d460af-8046-4fc5-9207-c612dad3a717", "created_at": "2025-05-29T16:57:32.647477+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/c4d460af-8046-4fc5-9207-c612dad3a717", "rel": "self"}, {"href": "http://localhost/allocations/c4d460af-8046-4fc5-9207-c612dad3a717", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_488_lessee_reader_can_read_node_allocation [0.069225s] ... 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-52908e73-b4b1-48cc-97cb-950212aa1346
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "70420112-346e-46fe-bd0b-19c68895f2f1", "created_at": "2025-05-29T16:57:32.730928+00:00", "updated_at": "2025-05-29T16:57:32.732446+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/70420112-346e-46fe-bd0b-19c68895f2f1", "rel": "self"}, {"href": "http://localhost/allocations/70420112-346e-46fe-bd0b-19c68895f2f1", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_130_portgroups_portgroup_ident_delete_observer [0.098833s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-573a8b4e-e642-40b2-9554-4acad121e165
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_489_third_party_admin_cannot_read_node_allocation [0.064903s] ... 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-fcb830dc-1541-423a-a3df-15dabdb7d008
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_admin [0.070309s] ... 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-b89699ad-67da-4795-bed2-bd556a6f4345
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_get_member [0.069477s] ... 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-fc6a8abf-d4c4-4a2f-a78f-1c4b7283a362
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_490_owner_admin_can_delete_allocation [0.104909s] ... 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-b69d572c-e86c-41fd-b44d-2be79e73cd37
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_133_nodes_portgroups_get_observer [0.070957s] ... 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-409156af-7777-430e-8bf3-28134f5989e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth [0.338859s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_admin [0.088690s] ... 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-d609e9f2-86f5-432b-949c-fd507a87ee53
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_auth_failure_logging_threshold [0.095033s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_491_owner_manager_can_delete_allocation [0.151552s] ... 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-ff72f862-1882-48a8-8174-b669529d0ed1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url [1.029375s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_135_nodes_portgroups_detail_get_member [0.090102s] ... 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-fd28c020-dd96-4cdc-94c3-9b2f2ac998cd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean [0.093012s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.MkfsTestCase.test_mkfs [0.041774s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_136_nodes_portgroups_detail_get_observer [0.072323s] ... 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-d06b1c54-ee1a-457a-99d6-4f462e6d97de
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_492_lessee_admin_can_delete_allocation [0.152444s] ... 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-049e5daf-2632-4d37-998b-e4023377e8a3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_label [0.038263s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy [0.102021s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.MkfsTestCase.test_mkfs_with_unexpected_error [0.036462s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_admin [0.081169s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7d347847-0a41-46b7-ad13-9d9f952ea0a0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_unsupported_fs [0.043970s] ... ok
{0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail [0.044088s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_493_lessee_manager_not_delete_allocation [0.165973s] ... 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-e306b8f9-a09e-498f-bd87-673fd85b660e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success [0.036921s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean [0.145141s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_138_ports_get_member [0.141892s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3b993c14-2b8a-4524-9672-999590e8f066
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_494_third_party_admin_cannot_delete_allocation [0.067254s] ... 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-a35f6660-a930-4ab9-8069-b09fb753dc46
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_495_owner_reader_cannot_get_deploy_templates [0.065922s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-02be9ddd-544a-4e92-96ee-04edfad46764
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state [0.135354s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy [0.139376s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_139_ports_get_observer [0.128350s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0b044627-bae8-42e5-b818-c9a98cb2d83e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean [0.068309s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_496_lessee_reader_cannot_get_deploy_templates [0.108522s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-00108309-1fbb-415a-9914-52ccb55aa03d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance [0.106925s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy [0.057344s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_140_ports_post_admin [0.114522s] ... 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-8d677c0f-d84d-4a0d-8a6f-1f72299e3f0d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_failure [0.090217s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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.071791s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_497_third_party_admin_cannot_get_deploy_templates [0.129338s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-88e7ecf8-18c5-40c8-96de-76006af4f985
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy [0.077380s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_498_third_party_admin_cannot_post_deploy_template [0.087948s] ... 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-8789de32-2c69-4a8c-8492-d6eceaa836ff
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_ok [0.124045s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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_invalid_component_type_clean [0.082438s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_499_service_cannot_get_deploy_templates [0.124789s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b5da7096-cccb-4fe9-9428-2d3fd551aa6e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy [0.069812s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_ok_asynchronous [0.124630s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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.072370s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_141_ports_post_member [0.379661s] ... 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-c74f48ce-74fd-4b18-8333-81e144e8963c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_ok [0.109011s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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.069332s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_raises_error [0.068755s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_500_service_cannot_post_deploy_template [0.195404s] ... 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-7d086c8e-e5e3-4be7-9e90-527e8944f772
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_142_ports_post_observer [0.126031s] ... 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-56a88690-7a8d-4065-8b2d-4204ace31159
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_inspect_wait [0.061799s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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.110338s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_501_owner_reader_cannot_access_chassis [0.100526s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-a043a58b-0e14-4825-bc57-90b07b6c79c7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_143_ports_detail_get_admin [0.092547s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6ae9dce3-de7f-4d1e-af5e-3874fe2cfb44
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy [0.106177s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_502_lessee_reader_cannot_access_chassis [0.108618s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-07f9cfb0-822b-4c49-b29e-753b58eb6af5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_inspecting [0.149370s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_144_ports_detail_get_member [0.107170s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-eced8bc9-fca7-40d1-bd7d-2c10f87b969c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component [0.057137s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_503_third_party_admin_cannot_access_chassis [0.084914s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-69b3cb38-b81e-472d-9b8c-d6fa1a81bee4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_other_state [0.092376s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_145_ports_detail_get_observer [0.090168s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8730b306-3856-4833-b3e9-cfc94329022f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_minimum_password_length [0.098280s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_504_third_party_admin_cannot_create_chassis [0.084739s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-7e28efa4-5924-4f4b-8014-a92b2b4c83de
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_unexpected_error [0.086333s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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.061526s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_146_ports_port_id_get_admin [0.099505s] ... 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-f96f4607-b628-406e-b2a6-de92d8aba026
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device [0.056594s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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.056575s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_505_service_cannot_access_chassis [0.079518s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-154a2754-8aa0-4f61-af8a-881166ea7eb2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked [0.036125s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_147_ports_port_id_get_member [0.095260s] ... 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-f8ab483a-a20b-41a1-8dd4-930cef49cf59
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_deploy [0.064565s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.060146s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_506_service_cannot_create_chassis [0.104914s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-35b16b74-14bd-474a-b37d-b2ffcce5790f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_clean [0.055177s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_148_ports_port_id_get_observer [0.080533s] ... 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-208dea66-b905-45a1-a597-c340167c6c5d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices [0.041599s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_deploy [0.049651s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.050465s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_admin [0.087318s] ... 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-b9337607-18ef-4f45-85f4-9308e158be0b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked [0.035928s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_clean [0.063020s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_validate_fail [0.041058s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/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.056391s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.CreateNodeTestCase.test_create_node [0.039495s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_150_ports_port_id_patch_member [0.093946s] ... 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-cec5105b-cedb-4b89-bd50-e1e0ba524eba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails [0.039427s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_memory.MemoryTestCase.test_memory [0.062741s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.046954s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_507_node_history_get_admin [0.293713s] ... 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-7f106a4a-801b-484d-97ab-6c10e1448bb9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"history": [{"uuid": "a8dab62d-3dfa-4044-8658-0f175ef54a3e", "created_at": "2025-05-29T16:57:35.007616+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/a8dab62d-3dfa-4044-8658-0f175ef54a3e", "rel": "self"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_151_ports_port_id_patch_observer [0.087436s] ... 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-59378c19-416d-4475-baec-8ca4c029ff63
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_add_ports [0.109609s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_admin [0.075486s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a35228a5-cf7a-4680-9b05-2b82554a818a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_508_node_history_get_member [0.105720s] ... 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-4e9de244-02c5-4ee1-942c-0e491707e567
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"history": [{"uuid": "b07f358b-7155-44f8-a375-315380fb3220", "created_at": "2025-05-29T16:57:35.095745+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/b07f358b-7155-44f8-a375-315380fb3220", "rel": "self"}]}]}
{0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_no_vif [0.114572s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_duplicates [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(
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_153_ports_port_id_delete_member [0.089659s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c81ba162-2a01-492f-9dc1-d1a2f2cf7628
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_509_node_history_get_reader [0.146246s] ... 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-ed32ff06-1002-41fa-81d6-da9084dbf8ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"history": [{"uuid": "050915b5-790b-40c2-bcce-ca986432d4c2", "created_at": "2025-05-29T16:57:35.247229+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/050915b5-790b-40c2-bcce-ca986432d4c2", "rel": "self"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_154_ports_port_id_delete_observer [0.095074s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-fef5ddac-1093-426a-b1e6-b5b99c990e6f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_vif_present [0.204446s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_raid_device.RaidDeviceTestCase.test_multiple_new_root_devices [0.179887s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_510_node_history_get_service [0.081687s] ... 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-f204fb9d-525d-441c-bc0b-635597ac36ad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"history": [{"uuid": "529c7424-9dfa-4199-9ef0-6e4faa325cbf", "created_at": "2025-05-29T16:57:35.345365+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/529c7424-9dfa-4199-9ef0-6e4faa325cbf", "rel": "self"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_155_nodes_ports_get_admin [0.075870s] ... 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-8e2d67b8-9925-433b-b237-da533a617612
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_new_root_devices [0.084996s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_member [0.071618s] ... 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-2752408f-a9c9-492f-9743-1b632e302319
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_511_node_history_get_service_cannot_be_retrieved [0.086622s] ... 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-7aee07a5-e7fc-4876-8944-668104dcfeda
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_previous_inventory [0.095071s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_512_node_history_get_entry_admin [0.100109s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/b378e4ae-dc8e-434a-8083-526bed47dcc1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-68cf8da2-1231-4ff8-bea4-4dc9ba48aac8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "b378e4ae-dc8e-434a-8083-526bed47dcc1", "created_at": "2025-05-29T16:57:35.519402+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/b378e4ae-dc8e-434a-8083-526bed47dcc1", "rel": "self"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_157_nodes_ports_get_observer [0.157502s] ... 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-b5b52ab9-9501-491c-952b-275781cbc1e7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_serials [0.077118s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_513_node_history_get_entry_member [0.106839s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/434dd443-1bcb-4995-9db4-d6fc2cb267d3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2bba7e43-e25e-4034-8b97-09899108b350
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "434dd443-1bcb-4995-9db4-d6fc2cb267d3", "created_at": "2025-05-29T16:57:35.631938+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/434dd443-1bcb-4995-9db4-d6fc2cb267d3", "rel": "self"}]}
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_already_set [0.063168s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_158_nodes_ports_detail_get_admin [0.088679s] ... 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-5b37ff28-20fe-4f4d-95ff-7670b6c4cf23
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound [0.362293s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_514_node_history_get_entry_reader [0.078298s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/07e71cfd-c128-48a6-97b5-020f8d5e3edb WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5e95f5bc-64e7-4665-b271-6354a7df30e4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "07e71cfd-c128-48a6-97b5-020f8d5e3edb", "created_at": "2025-05-29T16:57:35.728562+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/07e71cfd-c128-48a6-97b5-020f8d5e3edb", "rel": "self"}]}
{0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state [0.051997s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.046422s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_found [0.128373s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_159_nodes_ports_detail_get_member [0.121192s] ... 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-1c9c7b5b-b61d-4c95-9624-00a7859b58cc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_515_lessee_node_history_get_admin [0.098490s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/880436bb-b5b9-419f-835b-73498bf347a6/history WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-02e474dd-7417-4da2-b22f-41604a72c874
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 880436bb-b5b9-419f-835b-73498bf347a6 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound [0.044261s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_validate_interfaces.ValidateInterfacesTestCase.test_active_interfaces [0.049292s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_160_nodes_ports_detail_get_observer [0.070746s] ... 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-e387f0e3-da49-47cb-a232-61bccc10844b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_unbound [0.050444s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_validate_interfaces.ValidateInterfacesTestCase.test_all_interfaces [0.049520s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_516_lessee_node_history_get_member [0.101156s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/3d546740-ed2e-450d-8566-d7a17fcb6bcb/history WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d3b8ff33-5592-4859-99d1-d6b719cd5a66
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 3d546740-ed2e-450d-8566-d7a17fcb6bcb could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_no_pxe_fallback_to_all [0.032895s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup [0.046792s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_validate_interfaces.ValidateInterfacesTestCase.test_nothing_to_add [0.025012s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_admin [0.090460s] ... 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-a931056b-023b-42aa-82da-d88f0fe5414c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked [0.033730s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_pxe_only [0.023811s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_517_lessee_node_history_get_reader [0.075487s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/63f7cae6-41f1-44ad-9430-95c0e9e27e58/history WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8b0bf369-b257-4358-a8f5-71e8c9b8357b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 63f7cae6-41f1-44ad-9430-95c0e9e27e58 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_disable_power_off [0.070304s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_162_portgroups_ports_get_member [0.104384s] ... 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-050c4501-ef1d-43d6-a7a2-7fd5d4c2c488
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated [0.107048s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_518_lessee_node_history_get_entry_admin [0.099872s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/08577a31-626a-416c-b8c7-47a743e6cad8/history/d77dbdf0-66cf-41ba-96c2-9b5670cdf690 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b79e7a1f-6bc1-406c-9d45-08758cfec07d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 08577a31-626a-416c-b8c7-47a743e6cad8 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_ok [0.057921s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_163_portgroups_ports_get_observer [0.079910s] ... 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-77cc2e47-21d9-4966-89c1-87b28791e377
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_unversion_url [0.086288s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_164_portgroups_ports_detail_get_admin [0.081136s] ... 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-d3584aa8-307a-4730-9b05-153c0760cb8e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_519_lessee_history_get_entry_member [0.143462s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/7fbe1d22-0973-4564-b242-1e5731ee398f/history/fda253a2-76bb-4d92-a907-8f2c4754a42a WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d4645a80-048c-4f30-9171-c97739405a04
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 7fbe1d22-0973-4564-b242-1e5731ee398f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort [0.186045s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_disable_power_off [0.105979s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_member [0.083666s] ... 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-ab685d6d-d8c3-43fa-9c69-adf30d5f89ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_disallowed [0.050223s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step [0.110815s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_520_lessee_node_history_get_entry_reader [0.147448s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/75286371-924e-487b-b813-d97555559d29/history/38344bdc-a6a3-46d3-893a-59014f68880b WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-81846e45-4bde-4646-b4ea-910dd7069631
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 75286371-924e-487b-b813-d97555559d29 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_ok [0.076043s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_166_portgroups_ports_detail_get_observer [0.131866s] ... 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-b5ef44fe-d4a9-4602-b692-d7def0f36eee
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_locked [0.083545s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail [0.061223s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_521_owner_service_node_history_get_entry_reader [0.132717s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/cf02e148-a17e-4fa5-a47c-6146b68e8df4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0586c0d3-2f83-4af0-a7e0-72ecf5368aba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "cf02e148-a17e-4fa5-a47c-6146b68e8df4", "created_at": "2025-05-29T16:57:36.518956+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/cf02e148-a17e-4fa5-a47c-6146b68e8df4", "rel": "self"}]}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok [0.058951s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_167_volume_get_admin [0.110452s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3f6ad6f3-edad-4a55-b1bd-cc1a9f870aa8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_522_third_party_admin_cannot_get_node_history [0.073654s] ... 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-1cac3fa9-1576-4fff-b106-dcb5f70c56d6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_168_volume_get_member [0.075112s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-353fde66-077f-4d77-a48a-a0b93e929c63
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual [0.184894s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_523_node_history_get_entry_third_party_admin [0.082496s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/02df64b0-2593-4803-a6b6-3f9476005fcb WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-37ea2f17-6777-4f51-8b75-4c3a8374d621
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_169_volume_get_observer [0.071351s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a99ca0b2-d94d-4b33-842c-a9e7496e7eab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort [0.127018s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_524_node_history_get_entry_service [0.093750s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/68f87f29-3cb0-40c4-9b35-1d69aeea93cf WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a91131fa-6965-4c0e-959b-a57cece6bb60
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_170_volume_connectors_get_admin [0.078874s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a6628844-bd87-4911-91f2-f6ed9b269a8a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail [0.307885s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_525_node_inventory_get_admin [0.092985s] ... 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-178f1332-3c1c-421e-9e59-7ade1deb6e46
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step [0.109929s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok [0.060708s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_171_volume_connectors_get_member [0.132705s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-46a27e6f-9796-43f1-85bd-4e37d955d96a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_526_node_inventory_get_member [0.085268s] ... 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-ebe0b31e-fadf-4c4d-8ab9-840a7807b9fb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full [0.110729s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok [0.068931s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_172_volume_connectors_get_observer [0.084305s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4cf64087-1ac2-4e6e-9b10-2b6c263d57ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail [0.048707s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_527_node_inventory_get_reader [0.092049s] ... 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-0fb41b79-465f-4472-b0c8-c2d85a690345
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok [0.044519s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_173_volume_connectors_post_admin [0.085794s] ... 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-4e04ac9d-4583-4595-b86b-8a2db7a12b24
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state [0.114983s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail [0.053048s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_528_lessee_node_inventory_get_admin [0.109519s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/a3ad8f58-5d77-40e3-ac4d-3513486a46be/inventory WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-afbe6541-544c-460d-a59b-29513666209c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node a3ad8f58-5d77-40e3-ac4d-3513486a46be could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_174_volume_connectors_post_member [0.083643s] ... 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-a3b7711b-7158-440b-bfb8-63ae62982f85
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok [0.043653s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNodeCleanTestCase.test_do_node_clean_invalid_state [0.083818s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name [0.028544s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name [0.034609s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_529_lessee_node_inventory_get_member [0.092890s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/ef8d7ce0-e93c-4445-bc8b-0301144d1939/inventory WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-249e45ff-8915-4564-965a-9ec1ba1a0314
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ef8d7ce0-e93c-4445-bc8b-0301144d1939 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance [0.078960s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_scoped_canary_175_volume_connectors_post_observer [0.094242s] ... 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-ab80f93b-a936-4fd8-b69f-18b5660c6162
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option [0.036576s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root [0.041414s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_530_lessee_node_inventory_get_reader [0.079741s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/505b2f0a-959a-4128-8a3f-c19bc7081877/inventory WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1df2d2e8-dabe-4fa5-8bc3-ea8c5a767597
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 505b2f0a-959a-4128-8a3f-c19bc7081877 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail [0.088939s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_scoped_canary_176_volume_volume_connector_id_get_admin [0.090105s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/e529f890-5cd2-4d56-9c59-8a4f0e7cbd5d WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-cc35ddd6-40e3-44a5-96b7-8b2c5f2c10a7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector e529f890-5cd2-4d56-9c59-8a4f0e7cbd5d could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_deprecated [0.046238s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share [0.039489s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_531_shard_get_shards_disallowed [0.080835s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2e9e3765-a4b9-4ba4-8231-cb7aef5feaa7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:shards:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params [0.027404s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok [0.093367s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.TestRBACScoped.test_scoped_canary_177_volume_volume_connector_id_get_member [0.088938s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/d85111b5-c541-4158-935d-108c23b07f61 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-24082f86-c310-4ff0-9060-1c48327ed4d1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector d85111b5-c541-4158-935d-108c23b07f61 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_conf [0.028349s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_532_shard_patch_set_node_shard_disallowed [0.080611s] ... 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-3a42d8d7-8a7b-4366-a129-0c30e4907c6e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:shard\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_driver_info [0.035282s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail [0.082569s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share [0.037281s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_533_parent_node_patch_by_admin [0.079527s] ... 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-e2c36d2a-72f0-4718-b4dd-1d4416671750
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid [0.045378s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.027760s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full [0.106694s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_534_parent_node_patch_by_member [0.076607s] ... 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-053a17ab-8e49-4dd0-a709-a34c8a5604b7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated [0.045384s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok [0.035238s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok [0.023944s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_535_parent_node_patch_by_reader [0.072750s] ... 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-5a644596-3191-4382-9aee-57e4fd621842
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok [0.028607s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_cleaning_automated [0.121447s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.api.test_acl.TestRBACScoped.test_scoped_canary_178_volume_volume_connector_id_get_observer [0.312441s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/7670b624-1c37-49cf-9ff2-317f68e1f348 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5c7849ab-ba5a-4a69-b480-0836a38173d6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 7670b624-1c37-49cf-9ff2-317f68e1f348 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok [0.027957s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_536_parent_node_patch_by_manager [0.089351s] ... 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-4b18a881-fd45-435a-81d0-10ca488db7c8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok [0.094907s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_537_parent_node_patch_by_cannot_see_node [0.064353s] ... 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-a89e2150-a26c-4331-9922-a9fd1dfa991b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unable to apply the requested parent_node. Requested value was invalid.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_cleaning_manual [0.128912s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.api.test_acl.TestRBACScoped.test_scoped_canary_179_volume_volume_connector_id_patch_admin [0.194231s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/f3b861e1-3307-4fcd-abf8-e3e2c929cea9 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-61bbbb5c-20f0-4a1d-a9ed-f27539d9b9ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector f3b861e1-3307-4fcd-abf8-e3e2c929cea9 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_538_parent_node_children_can_get_list_of_children [0.092464s] ... 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-3b7ec40a-9ac4-453a-a8b7-b74d66743098
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"children": ["3c3b8adb-edd7-3ed0-8e82-aab714d8411a"], "links": {"href": "http://localhost/v1/nodes?parent_node=1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "children"}}
{0} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_deploying [0.113985s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid [0.150673s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_539_lessee_cannot_get_a_nodes_children [0.076226s] ... 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-bc05cb00-cfc0-4d2b-9c96-824a9ed3ccdf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_180_volume_volume_connector_id_patch_member [0.106009s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/e3bff235-ff13-4bda-8cb3-b038ca5980da WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ba3f24c1-78af-4ff0-97a1-42ef6822fe5c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector e3bff235-ff13-4bda-8cb3-b038ca5980da could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok [0.072348s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support [0.095936s] ... ok
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.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_540_owner_reader_can_get_firmware_components [0.093849s] ... 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-85f7bd29-bbe2-4d0c-8b84-0c962b91a246
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"firmware": []}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_patch_observer [0.081707s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/d1baac7f-0344-43e4-b3e0-4e9050adf815 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3bedecd9-9a4c-4576-8c20-0df1524a64b7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector d1baac7f-0344-43e4-b3e0-4e9050adf815 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok [0.058881s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed [0.121471s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok [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(
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_182_volume_volume_connector_id_delete_admin [0.078370s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/c1dc52fa-926b-482a-9c82-ff3f1fce5ce3 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1a0b425a-ac42-4c04-99c7-08dc546df614
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector c1dc52fa-926b-482a-9c82-ff3f1fce5ce3 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok [0.053943s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_member [0.068792s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/0f7f9362-674e-491c-b1d0-d89440c35e57 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-146a5693-cbc8-4737-8905-3b05a310b8e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 0f7f9362-674e-491c-b1d0-d89440c35e57 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_state_set_by_driver [0.102866s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file [0.049936s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_184_volume_volume_connector_id_delete_observer [0.072023s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/a97dff25-793a-42a3-9e8a-f65b634e1839 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-be27237e-808e-4e76-ae6b-a1228f5e2cc1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector a97dff25-793a-42a3-9e8a-f65b634e1839 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image [0.056712s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_541_lessee_reader_can_get_firmware_components [0.272272s] ... 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-4ce38b17-4f8a-40ee-97df-8f1a3d3c4a14
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"firmware": []}
{0} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded [0.087511s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception [0.044806s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_185_volume_targets_get_admin [0.075161s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7062292e-ec40-4899-b674-9b1c8dfbe926
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file [0.025798s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_542_third_party_admin_cannot_get_firmware_components [0.088928s] ... 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-0e47d96e-eedc-4f46-956c-a8519334c596
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters [0.049898s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_186_volume_targets_get_member [0.070844s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3abd4f26-589d-4966-81d0-9ea113a8090a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters [0.042978s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_187_volume_targets_get_observer [0.074331s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-37389f83-3f3f-43a5-84fb-20cf99cc0c19
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy [0.080053s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_543_service_can_get_firmware_components_owner_project [0.154028s] ... 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-b88f4ba1-4ba3-44ed-9b5f-02bb544cf57b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"firmware": []}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_admin [0.077919s] ... 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-94e8a823-0e97-46cd-85ea-d22bfe8a4c93
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes [0.286208s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue [0.086653s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_544_service_cannot_get_firmware_components [0.093347s] ... 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-7944b50b-41c5-4f0d-a065-873fc5cc10eb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_189_volume_targets_post_member [0.092245s] ... 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-32aa42ee-71f9-49d8-bd52-b778aee3cf8e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed [0.047014s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive [0.081045s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_deprecated [0.035206s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_545_runbooks_post_admin [0.089605s] ... 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/71bad92d-2128-4d75-8af9-3b6d9b379a2b
Openstack-Request-Id: req-a34a0304-14d2-4b05-94aa-67c83a86c107
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "71bad92d-2128-4d75-8af9-3b6d9b379a2b", "created_at": "2025-05-29T16:57:38.877623+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/71bad92d-2128-4d75-8af9-3b6d9b379a2b", "rel": "self"}, {"href": "http://localhost/runbooks/71bad92d-2128-4d75-8af9-3b6d9b379a2b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild [0.042333s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception [0.031622s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_190_volume_targets_post_observer [0.121067s] ... 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-c1dcdc2b-51a8-49ed-be36-a4f1e76904b0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning [0.116584s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok [0.034821s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_546_runbooks_post_manager [0.116987s] ... 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/7590b2d5-3161-43b6-b655-40af77be2c2e
Openstack-Request-Id: req-16698e86-5c4b-451c-a3f9-9b4cd6b5ba11
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "7590b2d5-3161-43b6-b655-40af77be2c2e", "created_at": "2025-05-29T16:57:38.994913+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/7590b2d5-3161-43b6-b655-40af77be2c2e", "rel": "self"}, {"href": "http://localhost/runbooks/7590b2d5-3161-43b6-b655-40af77be2c2e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok [0.048343s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance [0.085388s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_admin [0.122532s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/9a44eeec-77b2-4fa2-8091-487bd0b29e67 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a32c90de-5e6f-423c-9df8-2222001ed6dc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 9a44eeec-77b2-4fa2-8091-487bd0b29e67 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy [0.073962s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_547_service_post_runbook [0.088712s] ... 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/1517db7a-39f4-48c8-bf73-252bb3638668
Openstack-Request-Id: req-cbe86418-a29b-40db-8975-9c6d5fc50184
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1517db7a-39f4-48c8-bf73-252bb3638668", "created_at": "2025-05-29T16:57:39.084405+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/1517db7a-39f4-48c8-bf73-252bb3638668", "rel": "self"}, {"href": "http://localhost/runbooks/1517db7a-39f4-48c8-bf73-252bb3638668", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{0} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping [0.079075s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue [0.041924s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_member [0.076800s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/58ff8818-c8f5-477f-9cee-75876c25d22b WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-bd625fd7-b277-48fa-b0a6-7e85a9bebc18
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 58ff8818-c8f5-477f-9cee-75876c25d22b could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance [0.046609s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_548_third_party_admin_post_runbook [0.088438s] ... 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/0f67af63-2a7d-4262-8bad-7894c312b0f6
Openstack-Request-Id: req-892e87af-91e2-4fb4-86a4-30fa7b1c9542
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0f67af63-2a7d-4262-8bad-7894c312b0f6", "created_at": "2025-05-29T16:57:39.172632+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/0f67af63-2a7d-4262-8bad-7894c312b0f6", "rel": "self"}, {"href": "http://localhost/runbooks/0f67af63-2a7d-4262-8bad-7894c312b0f6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{0} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked [0.112727s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk [0.062103s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock [0.033136s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_549_runbooks_post_public_admin [0.087301s] ... 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-f00341cb-6de3-4130-ae26-abcbdd594a55
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_193_volume_volume_target_id_get_observer [0.128813s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/d857171f-0a03-443b-acad-c9ca42147892 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-859cf7e6-e419-4cbf-81c3-609d32823174
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target d857171f-0a03-443b-acad-c9ca42147892 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error [0.030098s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail [0.027529s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock [0.026787s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_550_runbooks_post_public_manager [0.080121s] ... 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-5b6060fc-eeef-40ff-9471-3f43e9d286d3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded [0.036112s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 [0.038154s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_194_volume_volume_target_id_patch_admin [0.144475s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/a51c73d2-589f-4eb4-b5fd-2d1c121e200a WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b7072088-d7a0-4971-921f-78843d8851b7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target a51c73d2-589f-4eb4-b5fd-2d1c121e200a could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_551_runbooks_post_public_service [0.088311s] ... 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-689e3283-fc0e-4ca9-b648-77434fe0f77f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue [0.234217s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify [0.062328s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_member [0.089141s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/a6f8827f-ab21-490c-85f2-bcbc48f0bb7a WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d0485ec3-410a-4f03-9a92-66bcb5145d09
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target a6f8827f-ab21-490c-85f2-bcbc48f0bb7a could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support [0.034860s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties [0.044461s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_552_runbooks_patch_admin [0.105365s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/c9f3de1b-40e8-411f-b8fd-0e5406db56f6 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a9919c82-64bb-41d3-8d02-72bf6d4aed8a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "c9f3de1b-40e8-411f-b8fd-0e5406db56f6", "created_at": "2025-05-29T16:57:39.464190+00:00", "updated_at": "2025-05-29T16:57:39.534207+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c9f3de1b-40e8-411f-b8fd-0e5406db56f6", "rel": "self"}, {"href": "http://localhost/runbooks/c9f3de1b-40e8-411f-b8fd-0e5406db56f6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception [0.051330s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance [0.056394s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ManagerDoSyncPowerStateTestCase.test_retry_then_success [0.028942s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_patch_observer [0.082390s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/aa1d15be-3080-4fc7-af1c-ea443a57f0be WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d038e81c-a560-45aa-83bb-524ae74a7160
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target aa1d15be-3080-4fc7-af1c-ea443a57f0be could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync [0.033999s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_active [0.056524s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_197_volume_volume_target_id_delete_admin [0.078856s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/667ecf24-de5e-4b69-b6fb-98ed9701cc0c GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b74ddd45-bcf2-4953-89fd-9b6e59e6ec87
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 667ecf24-de5e-4b69-b6fb-98ed9701cc0c could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_553_runbooks_patch_manager [0.134516s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/ebfa6fe6-da7b-4d0b-997e-6ff005039558 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-91064883-eebe-4d06-9af2-b9cc816ffeff
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "ebfa6fe6-da7b-4d0b-997e-6ff005039558", "created_at": "2025-05-29T16:57:39.574915+00:00", "updated_at": "2025-05-29T16:57:39.666183+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ebfa6fe6-da7b-4d0b-997e-6ff005039558", "rel": "self"}, {"href": "http://localhost/runbooks/ebfa6fe6-da7b-4d0b-997e-6ff005039558", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify [0.065046s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart [0.078305s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_with_disable_power_off [0.033709s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_member [0.070567s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/88f6a49b-06f7-452d-8952-50dc32ae6a4c GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-90b09178-d034-4c7f-b27a-9acbdfb3c840
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 88f6a49b-06f7-452d-8952-50dc32ae6a4c could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync [0.028028s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_554_service_patch_runbook [0.096476s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/7b9ce3c1-a5bf-4a4d-99e1-4d1624c59539 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-150e774b-6df1-45c6-b944-d179107047a9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "7b9ce3c1-a5bf-4a4d-99e1-4d1624c59539", "created_at": "2025-05-29T16:57:39.708979+00:00", "updated_at": "2025-05-29T16:57:39.766054+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/7b9ce3c1-a5bf-4a4d-99e1-4d1624c59539", "rel": "self"}, {"href": "http://localhost/runbooks/7b9ce3c1-a5bf-4a4d-99e1-4d1624c59539", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart_bios [0.071302s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed [0.037631s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_199_volume_volume_target_id_delete_observer [0.082303s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/e5fbc8d6-a8ae-48d4-b195-7e054d392996 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-61273f8b-8ad2-42d9-9f2d-24bdc5409fab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target e5fbc8d6-a8ae-48d4-b195-7e054d392996 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set [0.037621s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_lenovo [0.061770s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ManagerDoSyncPowerStateTestCase.test_state_unchanged [0.027696s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_555_project_admin_delete_runbook [0.085688s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/41884a5a-f1bc-4939-b6e9-287e966d4352 GOT Response: 204 No Content
Openstack-Request-Id: req-54554fe0-0671-4072-a551-418c9aa49993
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged_for_fake_node [0.028443s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_200_nodes_volume_get_admin [0.078632s] ... 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-a6242919-2713-4c39-9285-d20d48147de8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.071600s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ManagerDoSyncPowerStateTestCase.test_validate_fail [0.027931s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_556_project_manager_delete_runbook [0.087141s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/d752942f-7116-475f-9216-d9a7651f3882 GOT Response: 204 No Content
Openstack-Request-Id: req-ba66dd81-b268-4f3f-b5cb-35460d72e48d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection [0.043203s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_201_nodes_volume_get_member [0.076087s] ... 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-dfe5b49a-98a8-49e2-a393-b9abb4b9e006
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock [0.028366s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.074524s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_557_service_get_runbooks [0.069963s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6e07c29e-4440-432e-b369-0c9d2a6a4c96
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "448638a8-6dfb-4f71-9821-7250fd1ac383", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/448638a8-6dfb-4f71-9821-7250fd1ac383", "rel": "self"}, {"href": "http://localhost/runbooks/448638a8-6dfb-4f71-9821-7250fd1ac383", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes [0.042587s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire [0.025572s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire [0.026490s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_202_nodes_volume_get_observer [0.101203s] ... 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-fc25c66c-845b-4b01-888a-f63747e39e75
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk [0.096745s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_558_runbooks_project_admin [0.073813s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1bd54efa-8018-45da-83d8-4523513f1705
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "d106206c-7ee3-4b99-ace8-29e91521c219", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/d106206c-7ee3-4b99-ace8-29e91521c219", "rel": "self"}, {"href": "http://localhost/runbooks/d106206c-7ee3-4b99-ace8-29e91521c219", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire [0.027687s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire [0.032444s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios [0.068810s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_559_runbooks_runbook_id_get_project_admin [0.066358s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/9c85fab7-cf2d-4e52-9bb9-101cbb00ac86 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9ac3a9c0-b2a9-479c-8fb9-850c2576dc6e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "9c85fab7-cf2d-4e52-9bb9-101cbb00ac86", "created_at": "2025-05-29T16:57:40.122844+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/9c85fab7-cf2d-4e52-9bb9-101cbb00ac86", "rel": "self"}, {"href": "http://localhost/runbooks/9c85fab7-cf2d-4e52-9bb9-101cbb00ac86", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_admin [0.077961s] ... 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-848c551f-020e-45a3-a7ca-239944383891
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire [0.028751s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire [0.025596s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped [0.025031s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning [0.077990s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_member [0.075651s] ... 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-29e4cc6e-5c33-4460-8f42-0b27c033820a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node [0.026068s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_560_project_admin_patch_runbook [0.099504s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/b4923b78-d7a7-4dbc-b07d-ba2d79c27804 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2b7d933f-ce73-4521-a988-fc7aa484c67b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "b4923b78-d7a7-4dbc-b07d-ba2d79c27804", "created_at": "2025-05-29T16:57:40.190717+00:00", "updated_at": "2025-05-29T16:57:40.253057+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/b4923b78-d7a7-4dbc-b07d-ba2d79c27804", "rel": "self"}, {"href": "http://localhost/runbooks/b4923b78-d7a7-4dbc-b07d-ba2d79c27804", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed [0.026807s] ... ok
{0} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action [0.021610s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.070408s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestIndirectionApiConductor.test_object_action_copies_object [0.021916s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_205_nodes_volume_connectors_get_observer [0.080916s] ... 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-b7ae0587-9bb5-4a7b-9941-dbe660237dc6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object [0.026062s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_561_runbooks_project_manager [0.107420s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a360d933-2bf5-4f27-b0c2-47eb92fcde3a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "afebf696-53a0-4fca-8457-6b621e8544a8", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/afebf696-53a0-4fca-8457-6b621e8544a8", "rel": "self"}, {"href": "http://localhost/runbooks/afebf696-53a0-4fca-8457-6b621e8544a8", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise [0.023985s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.070631s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestIndirectionApiConductor.test_object_backport_versions [0.022305s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_206_nodes_volume_targets_get_admin [0.087910s] ... 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-f145debc-0b04-4946-b6fd-27871b240b98
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action [0.022607s] ... ok
{0} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object [0.021012s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_562_runbooks_runbook_id_get_project_manager [0.075779s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/4a219d5e-1f07-40e7-bcbc-5c6239ce85d7 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-003c7e2e-fcae-4b1a-95d8-453ed1b721c4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "4a219d5e-1f07-40e7-bcbc-5c6239ce85d7", "created_at": "2025-05-29T16:57:40.398650+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/4a219d5e-1f07-40e7-bcbc-5c6239ce85d7", "rel": "self"}, {"href": "http://localhost/runbooks/4a219d5e-1f07-40e7-bcbc-5c6239ce85d7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue [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.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise [0.022997s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_member [0.078155s] ... 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-64be3910-ba5d-4ed1-b508-d2cd99340271
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector [0.039165s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_bios [0.072404s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_563_project_manager_patch_runbook [0.094301s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/d62e0362-cc51-4415-80f5-52bb46336dfa WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c9498163-5786-4c1a-af58-bd0614e54fe0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d62e0362-cc51-4415-80f5-52bb46336dfa", "created_at": "2025-05-29T16:57:40.474101+00:00", "updated_at": "2025-05-29T16:57:40.531401+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/d62e0362-cc51-4415-80f5-52bb46336dfa", "rel": "self"}, {"href": "http://localhost/runbooks/d62e0362-cc51-4415-80f5-52bb46336dfa", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate [0.045094s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_208_nodes_volume_targets_get_observer [0.083599s] ... 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-54691df7-9f63-4076-b6a4-ca866802f9bd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked [0.035344s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.088081s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_564_runbooks_project_member [0.082821s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0ae2a441-ad21-49f6-8aa8-7d71e38a800e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "01081a8a-ae46-422d-94e9-671f163367cc", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/01081a8a-ae46-422d-94e9-671f163367cc", "rel": "self"}, {"href": "http://localhost/runbooks/01081a8a-ae46-422d-94e9-671f163367cc", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on [0.039285s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateVolumeConnectorTestCase.test_update_volume_connector_type [0.040131s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.066330s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_565_runbooks_runbook_id_get_project_member [0.076046s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/e9691138-9094-49a1-b527-277e6fcd51a0 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3065fa97-519c-4842-aa3c-feb5ea045ec7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e9691138-9094-49a1-b527-277e6fcd51a0", "created_at": "2025-05-29T16:57:40.657583+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/e9691138-9094-49a1-b527-277e6fcd51a0", "rel": "self"}, {"href": "http://localhost/runbooks/e9691138-9094-49a1-b527-277e6fcd51a0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.089582s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_566_runbooks_list_project_reader [0.074132s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-26e634e5-f2d4-4f08-a17e-40af54d9c4c1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "8c779117-93e9-47a4-8181-03aa34b53808", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/8c779117-93e9-47a4-8181-03aa34b53808", "rel": "self"}, {"href": "http://localhost/runbooks/8c779117-93e9-47a4-8181-03aa34b53808", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_567_runbooks_runbook_id_get_project_reader [0.070059s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/535aef67-a950-4fd3-a4e7-762f71a746e0 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1ea3b5ee-a1ca-4678-b367-0c0a38565af5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "535aef67-a950-4fd3-a4e7-762f71a746e0", "created_at": "2025-05-29T16:57:40.801301+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/535aef67-a950-4fd3-a4e7-762f71a746e0", "rel": "self"}, {"href": "http://localhost/runbooks/535aef67-a950-4fd3-a4e7-762f71a746e0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_209_drivers_get_admin [0.276416s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-ad62196a-f0de-425d-bb0d-c2c80a10ea94
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [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(
/usr/lib/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.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid [0.217409s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_drain_has_reserved [0.024849s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_568_runbooks_list_third_party_admin [0.074551s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-840d687f-136e-4e9b-90d1-074c872c89de
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": []}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_210_drivers_get_member [0.066907s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-148f59e7-84f2-42e4-b915-01e527651c41
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_shutdown_timeout_reached [0.024129s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.083909s] ... ok
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_rpc_service.TestRPCService.test_start [0.033049s] ... ok
{0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start_failure [0.033950s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_211_drivers_get_observer [0.084008s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-935a01df-2150-4723-a6fa-92279d805de5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi [0.072323s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start_no_rpc [0.037228s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_569_project_reader_cannot_post_runbook [0.111506s] ... 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-72e1317b-925b-455a-9ff6-0a40311a92fe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_after_full_reset_interval [0.025971s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel [0.049233s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_admin [0.071156s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-6bedbbb3-8ed1-446b-9643-2e655216f71d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_after_remaining_interval [0.032608s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk [0.043030s] ... ok
{0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_has_reserved [0.025760s] ... ok
{0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_instant [0.028067s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_213_drivers_driver_name_get_member [0.069027s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-08941370-ec15-4a2d-b7fd-077fbbfef7de
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_570_project_reader_cannot_patch_runbook [0.130978s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/87350a34-15cf-4942-b5d0-29ba8547e33e WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-31af98e0-2ced-4cbd-b6eb-ea4248efc68e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_slow [0.033122s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port [0.082234s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_214_drivers_driver_name_get_observer [0.076231s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-272e96b2-f786-41a9-bd07-fe16fb37a813
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_571_project_reader_cannot_set_runbook_owner [0.074598s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/4cfd073a-6ab1-4428-8951-53eeb9897f94 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c85a03e4-1ce9-4130-ba23-1775756a59c9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good [0.084801s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_admin [0.066993s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-0d5dbd6f-5871-46be-8cdd-b36581831541
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_572_project_reader_cannot_set_runbook_public [0.080351s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/bb47d888-b4a2-4505-a38c-de6fa3ae92cf WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8cd41b5c-bf7a-4cd8-a638-298a76dabfba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image [0.042084s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection [0.046817s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_member [0.096253s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-bacdadd6-5df6-4943-a665-7e1eda3083fa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection_no_inspection_ramdisk [0.053269s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.275444s] ... ok
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(
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_fail_http_url_not_set [0.066793s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_217_drivers_properties_get_observer [0.141240s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-2e4abbb2-b611-4f18-ab05-9c8ca5a65a88
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_missing_stage2_id [0.060816s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_573_project_reader_cannot_delete_runbook [0.237835s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/170caffb-c3a3-47eb-8b8c-6b24fa170f08 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-435304ed-c72f-467c-a505-ac7505fcf4ce
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.124098s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.048093s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_574_project_member_cannot_post_runbook [0.084401s] ... 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-0321f75c-8530-4b35-bde3-5c49a3bfe1f6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_218_drivers_raid_logical_disk_properties_get_admin [0.119754s] ... 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-d33d9385-6428-4f6d-9d59-c2ec15a5fc8e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_service_abort_tear_down_fail [0.048666s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_575_project_member_cannot_patch_runbook [0.076657s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/c16215fe-dd58-4a18-934c-7e514d25a79f WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-04d2132c-5068-4d87-968d-3b758c50f992
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_early [0.058537s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_219_drivers_raid_logical_disk_properties_get_member [0.084671s] ... 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-927a4eca-e659-4c6f-a5f9-49e3ebb57d79
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_no_image_source_for_local_boot [0.224118s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_576_project_member_cannot_set_runbook_owner [0.076814s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/2a193b6d-7114-43f5-b22e-db888ece29d1 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-bb07013d-1818-4b39-b5f1-d5434cb029c2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_with_step [0.068014s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_non_local [0.044439s] ... ok
{0} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps [0.039277s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_skip_check_write_image_false [0.049845s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_577_project_member_cannot_set_runbook_public [0.073546s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/ad2a6c81-20ca-4dc3-a55a-2a9e43f08a3f WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e7087a54-3986-4cf6-b25d-5ba0594a3c67
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_no_steps [0.043552s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false [0.031094s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true [0.020299s] ... ok
{0} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_on_node [0.040606s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_220_drivers_raid_logical_disk_properties_get_observer [0.167680s] ... 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-8f859019-5f83-4c96-a757-fdefff3c1635
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg [0.020094s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_578_project_member_cannot_delete_runbook [0.079951s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/8fd3b2ee-7de2-4b28-935b-810a22708b88 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4cdde9be-2e0c-4a57-80d4-c29497c3d84b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg [0.021073s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network [0.053195s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg [0.019987s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg [0.019238s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_579_project_manager_cannot_set_runbook_owner [0.083128s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/2cfcf4e1-c304-4d68-8f18-6529ff7215ba WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9b3dc549-05d9-4768-b97f-7b4742cd5972
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_221_drivers_vendor_passthru_methods_get_admin [0.111089s] ... 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-f98ba906-c8bb-48aa-89f1-8e181fdbfc0f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock [0.038947s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node [0.087389s] ... ok
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_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception [0.028461s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries [0.028196s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_580_project_manager_cannot_set_runbook_public [0.072309s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/0e14c197-e87a-4f39-86b5-65fdd9f83bcd WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8ed5965c-b6fd-431a-9afd-082632d207ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_222_drivers_vendor_passthru_methods_get_member [0.076994s] ... 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-f620cf1e-9bc9-4492-9547-f024abd41a0b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg [0.067671s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_patient [0.031608s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock [0.035408s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_581_project_admin_cannot_set_runbook_owner [0.083493s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/7e9b5532-069d-4cda-a108-50aef0226feb WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-98ad560b-90ae-4411-aa4e-d7a0619d6c6d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception [0.029083s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception [0.027477s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network [0.113033s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_223_drivers_vendor_passthru_methods_get_observer [0.137931s] ... 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-05bd4490-375a-42ac-9ded-55821577bbf3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception [0.028287s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_582_project_admin_cannot_set_runbook_public [0.072615s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/0d18075a-6f2a-496a-851b-33053b475cbd WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4cfebf48-6932-453c-9205-5c1f2661f965
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception [0.036643s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception [0.032859s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_583_service_cannot_patch_runbook_owner [0.074681s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/e7f8d18e-17a5-4968-8664-80c1e22303e1 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3fd8dcd7-6f2d-4453-9a0e-c36b9a0a21d8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_from_node [0.104846s] ... ok
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_task_manager.TaskManagerTestCase.test_excl_lock_upgade_exception_no_retries [0.029246s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_admin [0.103630s] ... 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-a1adf1a6-a3b1-4fbc-af15-9a82bbe28a47
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire [0.031177s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg [0.057054s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_584_service_cannot_patch_runbook_public [0.078203s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/1f5d5a6e-a830-41d6-8462-57645404f8dc WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-dc9ceb8f-b131-45d1-978a-83118bb7f7d8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm [0.030027s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver [0.030324s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_member [0.104245s] ... 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-cd07e442-98df-493d-bcac-d834a5d8107f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network [0.071573s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock [0.035149s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_585_third_party_admin_cannot_patch_runbook_owner [0.074531s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/f83889b6-5b22-4687-ba29-0c7ea5c634c2 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-db199c95-5ace-43aa-857b-1215e0838765
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception [0.035524s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_get_observer [0.076833s] ... 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-fefb2b93-fd5b-4f5d-981e-d82c309485b8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception [0.030054s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_586_third_party_admin_cannot_patch_runbook_public [0.069146s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/0b221a6b-76e1-416e-bae5-b35d3b7aeabe WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-426c0b40-09db-4023-b13c-a8e2a306f8e9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception [0.028793s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node [0.115860s] ... ok
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.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_admin [0.068907s] ... 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-e5610706-b2c4-4394-bda2-3c011de8cffb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception [0.036229s] ... ok
{1} 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.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception [0.029003s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg [0.053249s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception [0.027102s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_228_drivers_vendor_passthru_post_member [0.066728s] ... 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-63e1d82f-07ec-4989-9dcc-c854224703ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after [0.028727s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network [0.060555s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_002_nodes_post_admin [0.100443s] ... 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-e871237d-eec6-4695-a5bf-78617be61755
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded [0.034589s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_229_drivers_vendor_passthru_post_observer [0.080489s] ... 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-ec52caa0-af42-4afd-bcf5-22c3e88e3761
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails [0.032801s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node [0.062235s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook [0.027493s] ... ok
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception [0.027649s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_230_drivers_vendor_passthru_put_admin [0.065717s] ... 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-d1cc098f-39da-4498-b0df-617706963ec5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_003_nodes_post_member [0.104580s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-591667ca-5ec5-4181-81c7-b76340f3fd67
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg [0.064699s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks [0.058579s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_231_drivers_vendor_passthru_put_member [0.080078s] ... 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-eef92d3f-70c6-4ace-98b8-a011a80b31e7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_004_nodes_post_reader [0.106263s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d321eece-ddbc-4720-894b-076ba4cdf0ed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id [0.056145s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node [0.047298s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_232_drivers_vendor_passthru_put_observer [0.095415s] ... 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-7a81511d-76e3-4960-a946-eb8560c6a380
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails [0.210196s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_005_nodes_post_service [0.106879s] ... 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-faec14f1-33dd-4ed8-8b54-394151381ea3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id [0.058062s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock [0.031293s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing
{0} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm [0.049913s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail [0.055562s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_006_nodes_get_node_admin [0.080667s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d5f67cc5-fc19-462f-863e-477ed87289b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:57:43.093880+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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.conductor.test_utils.AgentTokenUtilsTestCase.test_add_secret_token [0.020836s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing
{0} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_is_agent_token_present [0.018553s] ... ok
{0} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info [0.018624s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id [0.062738s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning [0.025971s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_007_nodes_get_node_member [0.078702s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b93b39ca-986b-4d8d-b12f-99475d262915
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:57:43.172658+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_235_nodes_bios_get_admin [0.093438s] ... 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-dde91ca0-e2b4-40b7-8ac1-03057fabd05a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying [0.038333s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups [0.063692s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler [0.031453s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail [0.027304s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_008_nodes_get_node_reader [0.087447s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-124edd43-d285-4459-9da1-f13d8f311c6f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:57:43.268181+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address [0.061061s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_236_nodes_bios_get_member [0.067239s] ... 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-bc896d93-d06f-4e24-8bf8-6f3c5b0c2587
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait [0.029776s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_get_node_network_data [0.048101s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual [0.034674s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_009_nodes_get_node_other_admin ... SKIPPED: Not implemented yet
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_237_nodes_bios_get_observer [0.079382s] ... 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-9f36b24b-5872-4e12-9d7b-c461900ea61d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail [0.035697s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false [0.056839s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown [0.028490s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_238_nodes_bios_bios_setting_get_admin [0.071461s] ... 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-ad13465e-f52a-49a1-9256-c8e12adbf5c2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error [0.032963s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true [0.053321s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout [0.035592s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_010_nodes_get_admin [0.152837s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-95de6d77-35b0-4592-89d5-8fdd2dc7f7ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "216cd968-3f70-42c4-96c5-2ab08b9dceba", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_239_nodes_bios_bios_setting_get_member [0.072717s] ... 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-86ee099d-9043-4133-86f0-2155dee822ae
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call [0.033326s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network [0.092042s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout [0.041221s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc [0.033672s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_011_nodes_get_service [0.081059s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bdcc1263-a8f2-431e-b1bf-d96f4be2f991
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "604c8d17-f3c6-4299-948a-b72b26571669", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_240_nodes_bios_bios_setting_get_observer [0.079903s] ... 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-0c695e68-5b5c-4e77-acf2-6dbfb4227278
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc [0.035505s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node [0.105914s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_servicewait_timeout [0.033484s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_241_conductors_get_admin [0.068116s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3462919a-9362-46af-91a3-fb43166ba0e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_012_nodes_get_service_project [0.076247s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c0007782-4fd3-4bef-bba9-2a3a77981d6a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "6093e0ca-d99f-412b-b783-770b7fc3ef85", "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.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_servicewait_timeout_handler_call [0.028225s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network [0.070315s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker [0.045189s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_242_conductors_get_member [0.072686s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-df16f52e-ab1d-4eb6-af56-35630d6a0ac0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_get_service_project_disabled [0.075690s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ce19b6de-0c07-496e-8989-8d5a8ac9422a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": []}
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node [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(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error [0.055642s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_243_conductors_get_observer [0.074925s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f88a9c4f-0191-490a-a30e-7a13a3680cd6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker [0.037574s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network [0.058701s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_014_nodes_get_service_project_admin [0.096564s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a4d1e33b-b211-4b0c-b9a4-aa64509709a8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": []}
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error [0.031316s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_244_conductors_hostname_get_admin [0.069512s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-cb50e5c1-bd36-4bf5-b5eb-87b898a1731e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks [0.049478s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler [0.034230s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_015_nodes_get_other_admin ... SKIPPED: Not implemented yet
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state [0.046110s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 [0.055630s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_245_conductors_hostname_get_member [0.088148s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-793791e2-979c-4776-a621-302ef36ea390
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc [0.047716s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_2 [0.049875s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_016_nodes_detail_get_admin [0.093037s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-70fb5672-bdbd-4d80-9a67-95f47e400d83
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:57:43.979898+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-05-29T16:57:43.981079+00:00", "updated_at": "2025-05-29T16:57:43.984769+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": "61b1a66a-c1c8-4085-b280-54d4d71bfc5b", "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": "61b1a66a-c1c8-4085-b280-54d4d71bfc5b", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-05-29T16:57:44.003704+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc [0.031320s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_246_conductors_hostname_get_observer [0.068754s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-56e5e2f8-b5e0-45eb-8f49-15130cb7919f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic [0.048943s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false [0.029613s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_017_nodes_detail_get_member [0.080713s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8cbd6fd4-5a52-4ff7-8c21-824167746559
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:57:44.064743+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-05-29T16:57:44.069722+00:00", "updated_at": "2025-05-29T16:57:44.073311+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": "6d879c0c-3312-46ba-ab5f-035b29b72bd7", "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": "6d879c0c-3312-46ba-ab5f-035b29b72bd7", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-05-29T16:57:44.089489+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler [0.039419s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate [0.049039s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_fail [0.036585s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection [0.058554s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_teardown [0.028115s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_018_nodes_detail_get_reader [0.092163s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-df8afca8-f952-41f1-b187-9b3d399465c3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:57:44.150964+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-05-29T16:57:44.152119+00:00", "updated_at": "2025-05-29T16:57:44.159166+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": "feba1cc0-7c1d-4a16-ae76-8b9bb65f2baa", "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": "feba1cc0-7c1d-4a16-ae76-8b9bb65f2baa", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-05-29T16:57:44.174963+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicefail [0.031608s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection_exc [0.046776s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicewait [0.029892s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue [0.047882s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_tear_down_error [0.035824s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_019_nodes_detail_get_service [0.082079s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-44014416-cef3-48f0-b19e-93eb2d94eff5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:57:44.242847+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "created_at": "2025-05-29T16:57:44.245226+00:00", "updated_at": "2025-05-29T16:57:44.248848+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": "b59248d6-bf44-4b46-8b30-2ec6c2ddb7ba", "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": "b59248d6-bf44-4b46-8b30-2ec6c2ddb7ba", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/volume", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "created_at": "2025-05-29T16:57:44.264151+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "
    rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc [0.062179s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker [0.065603s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_020_nodes_node_ident_get_admin [0.079457s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-61c8b3e2-cb7b-45d1-aced-fa9b7d275296
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:57:44.324177+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": 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.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error [0.034910s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_with_disable_power_off [0.053178s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker [0.032398s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach [0.042375s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error [0.030204s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_247_allocations_post_admin [0.387334s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8e9a4c55-cad1-4829-a7d4-cfe9b001f910
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker [0.044060s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach [0.058714s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.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.
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error [0.031452s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list [0.060908s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_servicing_error_handler_no_worker [0.039112s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_servicing_error_handler_other_error [0.034970s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed [0.062929s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_249_allocations_post_observer [0.102446s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2b9ee024-a9ac-475a-8ef7-5dfb8f45d403
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported [0.039308s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_021_nodes_node_ident_get_member [0.287121s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d62214cd-4076-487e-88f7-1a6c74b6f8ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:57:44.613305+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save [0.062255s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid [0.041365s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_250_allocations_get_admin [0.060759s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2177bd11-c8aa-451b-83ca-04524d600e30
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history [0.034105s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_022_nodes_node_ident_get_reader [0.082102s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dff0a3e1-f703-4936-b4df-ead5193a1f2a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-29T16:57:44.696076+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_251_allocations_get_member [0.073163s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ad1f5eb4-a7e7-4d6b-bd4a-29d171d5dd9b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_empty_bios_registry [0.084283s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_disaled [0.060521s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop [0.057579s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_252_allocations_get_observer [0.077408s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d4f7ae7f-6988-4969-bfe8-c800a38d012a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_023_nodes_node_ident_patch_admin [0.104300s] ... 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-1f242e84-73e7-4e91-b567-c773e630610b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_exception_bios_registry [0.093378s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_error_severity [0.030433s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_user [0.027409s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_253_allocations_allocation_id_get_admin [0.069908s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/91da4141-3b1b-4f72-a8e2-20a544534b09 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-712b3ddb-344c-493d-a138-a8302cb14b14
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 91da4141-3b1b-4f72-a8e2-20a544534b09 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting [0.045540s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_024_system_admin_can_patch_chassis [0.112901s] ... 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-133afcc0-51a3-4ca1-b3c1-5d2c671079b8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_254_allocations_allocation_id_get_member [0.073329s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/cdfedaf7-6735-4fb4-b42d-81b4fc507b93 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-36bc4cd9-477c-4d6b-9344-38937de662fe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation cdfedaf7-6735-4fb4-b42d-81b4fc507b93 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode [0.044264s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeSetBootModeTestCase.test_node_set_boot_mode_valid [0.038523s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_255_allocations_allocation_id_get_observer [0.061135s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/fa35011c-17db-42d6-b3b7-1fa7d10aa455 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4064b93f-408f-480c-b961-5a65bc4278d8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation fa35011c-17db-42d6-b3b7-1fa7d10aa455 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot [0.054407s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_025_system_member_can_patch_conductor_group [0.136244s] ... 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-883f5a63-a8b2-420c-952d-b3f5deea625d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry [0.239614s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_256_allocations_allocation_id_patch_admin [0.081904s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/9a932871-0dc6-402a-bb62-69a9b5929461 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-506f5968-7662-4abe-8114-fe84742070df
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 9a932871-0dc6-402a-bb62-69a9b5929461 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout [0.054547s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_power.RedfishPowerTestCase.test_get_power_state [0.037514s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties [0.030719s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off [0.050757s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_257_allocations_allocation_id_patch_member [0.063625s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/7ae5e05b-1c58-49d2-836f-f10ba3a6a505 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-043e1617-32dc-42cc-a5d2-e71401e68d10
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 7ae5e05b-1c58-49d2-836f-f10ba3a6a505 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states [0.031960s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_026_nodes_node_ident_patch_member [0.114056s] ... 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-8412a33e-7393-460e-814f-641d116914fd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach [0.064692s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_258_allocations_allocation_id_patch_observer [0.075929s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/558d1ba8-a580-4d97-bfd3-f0b1c788bfc5 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ee65f4ba-f9a3-4d60-9efe-9b01270b5b98
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 558d1ba8-a580-4d97-bfd3-f0b1c788bfc5 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail [0.070116s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_timeout [0.052807s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.StoreAgentCertificateTestCase.test_no_change [0.024080s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_259_allocations_allocation_id_delete_admin [0.061683s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/211c0cde-b2e5-4544-9991-2d61092ab8fd GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1793c117-72e8-4337-9deb-91e0983c8c66
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 211c0cde-b2e5-4544-9991-2d61092ab8fd could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_027_nodes_node_ident_patch_service [0.120826s] ... 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-a42d3f86-73f1-4d09-9f5e-a8219557003d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail_on_power_on [0.062877s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.StoreAgentCertificateTestCase.test_store_existing [0.029874s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off [0.050518s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.StoreAgentCertificateTestCase.test_store_new [0.028231s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_260_allocations_allocation_id_delete_member [0.075532s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/16854360-3578-4853-bffb-9ffaa2673308 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-98fa2455-36e9-48f4-933d-b78f920519ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 16854360-3578-4853-bffb-9ffaa2673308 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over [0.025556s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off_with_disable_power_off [0.042319s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__container_name [0.021483s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__container_path [0.020060s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_028_nodes_node_ident_patch_service_project [0.134814s] ... 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-aaa2d97c-0c3e-4304-96e8-ccd5232c20e4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_261_allocations_allocation_id_delete_observer [0.063802s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/0c8ba619-c033-41e1-a196-7b7a4668e32b GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-606d9181-85c2-4ced-af08-f9c02561e6cc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 0c8ba619-c033-41e1-a196-7b7a4668e32b could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_on [0.040911s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_power.RedfishPowerTestCase.test_reboot_from_power_on_with_disable_power_off [0.053872s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_029_nodes_node_ident_patch_reader [0.077517s] ... 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-6d223064-ee6d-498a-a109-5e5812cf59e2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_262_nodes_allocation_get_admin [0.081900s] ... 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-bce81395-0487-4dd2-b162-de17357d7cad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached [0.050125s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_030_nodes_node_ident_delete_admin [0.072756s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-6095c63b-79b9-42fe-861d-5d0ecf70ef29
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state [0.058750s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_263_nodes_allocation_get_member [0.095507s] ... 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-7cfac135-9fba-412e-b65a-ff9e34bf7d1d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__host_port [0.235775s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_031_nodes_node_ident_delete_service [0.080665s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-656b75ea-b3d2-4d0d-b4db-cc9648718642
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail [0.067574s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_264_nodes_allocation_get_observer [0.067961s] ... 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-2d6a9578-2c2d-4ae7-b85b-f92fb6d6a656
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__reload [0.027698s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__start [0.022503s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached [0.044412s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__stop [0.021111s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__unit_name [0.019877s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_032_nodes_node_ident_delete_member [0.084133s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-401b0540-c5da-4f48-94df-81749af591ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate [0.041331s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_265_nodes_allocation_delete_admin [0.078485s] ... 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-0cfeb7b2-4b43-4b83-a02c-2960b8816d34
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__write_container_file [0.023941s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_delete_container_file [0.028737s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system [0.050341s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_033_nodes_node_ident_delete_reader [0.076093s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-757205f9-8992-49e9-8845-3f00404b8227
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_start_stop_container [0.033102s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_266_nodes_allocation_delete_member [0.075677s] ... 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-3b2f0e80-09fc-415e-b966-89b058a8e00a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_multiple_systems [0.050821s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_stop_all_containers [0.036630s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_access_error_retry [0.076274s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_034_nodes_validate_get_admin [0.111300s] ... 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-6cadb563-9585-4ace-b969-4319fed84e0b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_267_nodes_allocation_delete_observer [0.157920s] ... 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-d471aa11-7f74-41f5-9b0f-c938e1869842
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_attribute_error [0.057141s] ... 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
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_035_nodes_validate_get_member [0.145058s] ... 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-89e528d5-3b63-4579-98d4-3df276810f10
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_connection_error_retry [0.124650s] ... ok
{0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value [0.032995s] ... ok
{0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check [0.043260s] ... ok
{0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value [0.032171s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_268_deploy_templates_post_admin [0.218723s] ... 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-f9ab2d0e-6ba9-4001-b8d9-b4ada930e19b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check [0.028422s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_not_found [0.130867s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_036_nodes_validate_get_service [0.162997s] ... 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-37c23d43-d629-42a0-8693-12c3e2cd1edc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_cannot_migrate [0.043887s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready [0.077910s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_269_deploy_templates_post_member [0.107286s] ... 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-99052d56-d182-4573-b6d0-84e18dcefd62
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_cannot_migrate_some [0.065977s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_037_nodes_validate_get_service_project [0.095611s] ... 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-85b76926-0460-4f39-bcf8-9eeac55ccaa3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error [0.046346s] ... ok
{0} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_all [0.038310s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service [0.024034s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_270_deploy_templates_post_observer [0.073770s] ... 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-e5c2f9e1-70de-4439-ad77-71bcd915f0e6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service_error [0.022885s] ... ok
{0} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_with_limit [0.049320s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_collection [0.031586s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_038_nodes_validate_get_reader [0.108438s] ... 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-f8f28971-f98d-46b5-8bf5-df4abb671e82
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists [0.048254s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_collection_error [0.025907s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_271_deploy_templates_get_admin [0.078124s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-34b325ee-f406-4e48-a737-c0717948bec8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor [0.024500s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor_error [0.024709s] ... ok
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis [0.065713s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service [0.034858s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_272_deploy_templates_get_member [0.074179s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-afcbd952-61ce-4e52-946c-b9f803b31868
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_039_nodes_maintenance_put_admin [0.129843s] ... 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-0e5cc77d-cced-4263-94d3-f6657a4b6a01
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service_error [0.031408s] ... ok
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist [0.060989s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_273_deploy_templates_get_observer [0.072310s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-24f721d7-31a0-4bbd-92fa-7fdae2e14609
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info [0.053540s] ... ok
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes [0.046915s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_040_nodes_maintenance_put_member [0.078249s] ... 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-c83b51dc-6efd-4771-8bc7-36fabbe34b96
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id [0.033981s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme [0.038310s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_ipv6_brackets_added [0.024434s] ... ok
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid [0.027034s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_274_deploy_templates_deploy_template_id_get_admin [0.066861s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/f8f08ff1-f21d-475e-9a7d-6b674d138113 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-15167549-634d-4ed0-b611-703f92a2af63
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.023060s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_041_nodes_maintenance_put_reader [0.075022s] ... 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-8cc98058-ec45-4fcf-945a-03dd9037cab3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list [0.034236s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address [0.029865s] ... ok
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist [0.036431s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type [0.025345s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_275_deploy_templates_deploy_template_id_get_member [0.076816s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/49f463d3-a55e-4097-8eb8-4a397157f28d WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4d7bcd24-a850-4c3a-b6c2-a83dbdeab0c6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis [0.030504s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_042_nodes_maintenance_delete_admin [0.085114s] ... 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-52008cb9-c35d-4a80-a45b-42a775ca163d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.034630s] ... ok
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist [0.029893s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_276_deploy_templates_deploy_template_id_get_observer [0.069377s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/08ae91e6-19ab-478a-943c-5c8af9484aba WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f9134d0b-b0ba-424d-a603-4c2a6fcb778e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id [0.039468s] ... ok
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid [0.023650s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create [0.023398s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_maintenance_delete_member [0.079185s] ... 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-3e42be3c-7a04-4528-9137-992419d24e6b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name [0.026159s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.056953s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid [0.024684s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_277_deploy_templates_deploy_template_id_patch_admin [0.082343s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/378855ab-7ec8-427b-93d9-884a3ffb01d9 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0176317a-9f1c-410c-b11e-ebf1e0b101b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info [0.038339s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface [0.026538s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_044_nodes_maintenance_delete_reader [0.065757s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c7395913-1126-443f-94a5-d41258f9d5ad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_system_id [0.025701s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps [0.025784s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca [0.023876s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_278_deploy_templates_deploy_template_id_patch_member [0.071654s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/0492d859-7cde-4de2-a622-41c2af8300ac WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b05335c2-d15d-4196-8e52-67c89295935a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy [0.039979s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type [0.033382s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_boot_device_put_admin [0.075946s] ... 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-8235675d-9c1c-45eb-9f4b-c3831f83e00f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id [0.028210s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath [0.025101s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name [0.030283s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_279_deploy_templates_deploy_template_id_patch_observer [0.070754s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/5784e220-62ec-4bec-a013-0c5c9965d1d5 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-62e44952-6627-495a-b28a-3a2e15d0c11c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.036724s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_046_nodes_management_boot_device_put_member [0.071685s] ... 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-389db6eb-c3bf-4998-ab85-cbb7bdd4fb0d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid [0.032536s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_with_root_prefix [0.023640s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list [0.040526s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_280_deploy_templates_deploy_template_id_delete_admin [0.075489s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/b238bf3f-8618-49bc-94fd-296d82b71a3d GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-aca061b6-479c-42bd-a839-819f8633a841
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final [0.047476s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_047_nodes_management_boot_device_put_reader [0.071627s] ... 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-d78ac0ec-54b7-417a-b17d-e158c055b6fb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names [0.031996s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match [0.027117s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_281_deploy_templates_deploy_template_id_delete_member [0.065649s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/de2ed8f6-bafa-4b80-b8fe-f9c3e084017f GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b306fce4-8994-4e1c-97f0-3e96bcfe7621
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted [0.032748s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_048_nodes_management_boot_device_get_admin [0.074415s] ... 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-0f5589f7-1a76-40de-b861-bf108619e3b1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name [0.040107s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_282_deploy_templates_deploy_template_id_delete_observer [0.076501s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/16e77f10-cfe8-4e7a-8e3f-b369ae6ac6b9 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6958626e-7f86-4d94-9465-fda344ec4633
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra [0.028887s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_management_boot_device_get_member [0.083931s] ... 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-a443e81a-f15b-434e-9217-fcb4a1f0af8b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name [0.028138s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found [0.026174s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result [0.210011s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_283_chassis_post_admin [0.077227s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-bd28c712-f458-492d-85bb-2420426ec15c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add [0.038299s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result2 [0.041409s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_remove_all [0.030167s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_050_nodes_management_boot_device_get_reader [0.102185s] ... 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-cde87d86-3e7f-4a88-8cc5-fc9dfb9312e9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_clean [0.040953s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.030182s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_deploy [0.037539s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.030583s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_051_nodes_management_boot_device_supported_get_admin [0.067276s] ... 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-cf199b90-7b78-4054-9456-67f8666ae66c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed [0.031822s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final [0.048324s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_history.DBNodeHistoryTestCase.test_destroy_node_history_by_uuid [0.037175s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_052_nodes_management_boot_device_supported_get_member [0.067015s] ... 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-2bd944a9-ce09-4d9f-9301-83cd8928fc86
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered [0.047191s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_history.DBNodeHistoryTestCase.test_get_history_by_id [0.028301s] ... ok
{0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id_not_found [0.025080s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration [0.040749s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id [0.028753s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_284_chassis_post_member [0.293578s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-f4e782cf-c41c-4b1c-ba09-8e5137842209
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration [0.049906s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty [0.034303s] ... ok
{0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid [0.025338s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config [0.046526s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid_not_found [0.026580s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_285_chassis_post_observer [0.072278s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-e65f194b-2cca-459a-b42b-29d190712c9a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list [0.031201s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping [0.039777s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_history.DBNodeHistoryTestCase.test_get_node_history_list_sorted [0.034903s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot [0.039089s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_inventory.DBNodeInventoryTestCase.test_destroy_node_inventory_by_node_id [0.030352s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_286_chassis_get_admin [0.080237s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-03197517-29bf-4fe8-a265-b079af4e5ee6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_053_nodes_management_boot_device_supported_get_reader [0.271858s] ... 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-ce5b2c67-6d13-463c-bb17-d93c819470f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root [0.050262s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_inventory.DBNodeInventoryTestCase.test_get_inventory_by_node_id [0.038450s] ... ok
{0} ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base [0.018949s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration [0.038647s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_054_nodes_management_inject_nmi_put_admin [0.069758s] ... 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-8853a993-d4b8-4cb8-ac1c-ee0f884ce896
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address [0.031172s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_287_chassis_get_member [0.086019s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-ae32baa6-7483-428b-bbfc-ec188f99c7a0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps [0.037908s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip [0.056816s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps_config_priority [0.046902s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_055_nodes_management_inject_nmi_put_member [0.076645s] ... 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-d66f25cb-6e58-4c0b-9110-73610b6e7093
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_288_chassis_get_observer [0.081611s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-15e7f314-8154-44fb-bc6c-856be54f520f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_ipv6 [0.032130s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_deploy_steps [0.038927s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception [0.029513s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_056_nodes_management_inject_nmi_put_reader [0.066573s] ... 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-f256ca4f-be70-4262-889f-775080657683
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot [0.038397s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_289_chassis_detail_get_admin [0.072120s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-ca0517e2-27eb-4225-8cad-0c13542eb0d8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info [0.049276s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_057_nodes_states_get_admin [0.073855s] ... 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-7ec54b39-bb28-4eba-b212-df9f87195b8b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info [0.048442s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_boot_loader_install_fail [0.091353s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_290_chassis_detail_get_member [0.069782s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-bb23e93e-6344-41cc-8a92-cdf60bb10e78
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_always [0.041371s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_058_nodes_states_get_member [0.065843s] ... 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-5e371d99-ee63-4bc6-a5b2-00c71b141a56
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_291_chassis_detail_get_observer [0.098540s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-ac107c48-80af-48f3-93a7-41b70f29504e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_default [0.069244s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_059_nodes_states_get_reader [0.087995s] ... 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-687a25ac-c067-454d-a356-b5793ec7f5c3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_never [0.041226s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_lenovo [0.046765s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_060_nodes_states_power_put_admin [0.073677s] ... 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-b0f57892-4a3f-4532-ab3b-84ed171d4ec6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_no_root_uuid [0.038972s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning [0.258429s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_292_chassis_chassis_id_get_admin [0.145387s] ... 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-8d6107a6-0dbb-400c-a295-244400663023
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_061_nodes_states_power_put_member [0.072070s] ... 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-24dd90e4-e758-4015-b1af-5e89abe79d56
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_no_root_uuid_whole_disk [0.055690s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup [0.065475s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_non_software_raid [0.046864s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_293_chassis_chassis_id_get_member [0.080834s] ... 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-2ecd6d06-f5f7-45af-86c4-b05ffb8603ae
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception [0.049565s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid [0.051978s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_062_nodes_states_power_put_reader [0.132371s] ... 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-e5e3b22f-58bc-400d-87c4-7b5b80c4e9ed
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_294_chassis_chassis_id_get_observer [0.074984s] ... 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-5f310f11-9f7f-4dae-9324-b4af933c123c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning [0.096152s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_063_nodes_states_boot_mode_put_admin [0.070978s] ... 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-0d6c709f-d7cc-4ee3-a6c0-12327275ac22
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_bios [0.099383s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_295_chassis_chassis_id_patch_admin [0.071244s] ... 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-e1ceacc8-768e-4984-b1fa-4d5d412bcb70
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant [0.096278s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_064_nodes_states_boot_mode_put_member [0.070038s] ... 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-800d585d-2b93-418a-9c39-3a606e3b1a12
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_296_chassis_chassis_id_patch_member [0.069860s] ... 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-4af7b24b-20d4-4408-85ce-a892b981789b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_exception_bios [0.105364s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_065_nodes_states_boot_mode_put_reader [0.065815s] ... 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-9ec59663-a46a-4844-ab53-7f6d551f61c5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_297_chassis_chassis_id_patch_observer [0.071011s] ... 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-8cdfb471-0680-4b54-87f1-c2085d3d31c2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception [0.125554s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_066_nodes_states_secure_boot_put_admin [0.088058s] ... 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-641b4c4c-b63a-4112-8e2b-7a93b9eb66f7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_exception_uefi [0.116598s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_298_chassis_chassis_id_delete_admin [0.076206s] ... 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-8efcb35f-1060-4ac2-80cc-c5957e17d68f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_secure_boot_put_member [0.064884s] ... 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-c0f24455-ea84-4224-878c-d07cae226f68
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses [0.106834s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_299_chassis_chassis_id_delete_member [0.063770s] ... 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-c6058ad8-55e5-4c90-8a33-efecaa683576
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_explicit_uuid [0.107973s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_068_nodes_states_secure_boot_put_reader [0.072522s] ... 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-a2bfa596-a337-4f05-9fed-28248e166ca1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_300_chassis_chassis_id_delete_observer [0.067467s] ... 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-12eb4718-c980-4915-a146-94f398554503
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup [0.105025s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_069_nodes_states_provision_put_admin [0.066130s] ... 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-49319c25-9dbb-4560-839e-e987c2c83959
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_301_node_history_get_admin [0.070613s] ... 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-dcb3e74d-c980-4e37-a494-20a9cede54af
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_explicit_uuid_bios [0.103192s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_070_nodes_states_provision_put_member [0.065834s] ... 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-9d6fcc3c-45f1-4c8b-b322-1eb11440b178
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp [0.097281s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_set_boot_device_fail [0.095047s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_071_nodes_states_provision_put_reader [0.067382s] ... 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-731fe31e-05b2-4308-b110-df830553abe5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_302_node_history_get_member [0.112788s] ... 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-ec7ae288-8814-4c15-b7e0-a1f7d3e51d94
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_uefi [0.038657s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails [0.091270s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_whole_disk_image [0.039124s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_072_nodes_states_provision_put_service [0.070306s] ... 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-70c6bb70-db39-4cc2-9ec9-b79b1a6fcccf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_whole_disk_image_bios [0.039134s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_073_nodes_states_raid_put_admin [0.066217s] ... 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-c4e763c5-7ae9-446f-a5d0-84ed4ec4e166
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_with_prep [0.039717s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data [0.093379s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_303_node_history_get_observer [0.149947s] ... 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-41d26433-f2b4-4f97-8f95-33740fcca9c4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent [0.047048s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_074_nodes_states_raid_put_member [0.073813s] ... 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-6c8f9be9-ace4-4b86-ac35-2e2e4eaa7419
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake [0.075043s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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_disable_power_off [0.049440s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_304_node_history_get_entry_admin [0.103615s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b14d8ca5-7a82-4239-a604-38a16a767d31 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-546a348e-0d7e-47fb-8da9-af091f1e078e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures [0.048194s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_075_nodes_states_raid_put_reader [0.075517s] ... 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-8c5df0ea-bae2-451e-b079-0e47620f15d4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_get_power_state_fails [0.055937s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake [0.051659s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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_no_power_on_support [0.048212s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_305_node_history_get_entry_member [0.089144s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c8ad5eae-1e24-40e0-9847-4666a4b6707e WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-37b88212-bb2b-498e-8be9-8b586ce13adc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_076_nodes_states_console_get_admin [0.075756s] ... 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-31b878f0-0a6c-4f3d-a9d7-d21cbb4cec42
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts [0.048426s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_power_action_oob_power_off [0.079131s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_077_nodes_states_console_get_member [0.068169s] ... 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-ac376e5e-7216-47ba-b016-a9ce4ca09942
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_306_node_history_get_entry_observer [0.080774s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9dbe23c9-c882-4fe6-9835-3b104b0d6e4e WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6f8a3fe9-12c0-4fa0-b8d6-56b249350f38
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 [0.058134s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_hooks.TestContextHook.test_context_hook_after_add_request_id [0.037479s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_power_action_oob_power_off_failed [0.055788s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 [0.057091s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_078_nodes_states_console_get_reader [0.068125s] ... 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-bb8963a9-2931-4398-8d40-908be8df602f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context [0.030595s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/bad/path WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception [0.051009s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_hooks.TestContextHook.test_context_hook_auth_token_info [0.051253s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_power_off_fails [0.079072s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_079_nodes_states_console_get_service [0.067976s] ... 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-72b37a3c-0027-4723-8695-f8421d469a04
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy [0.050899s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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_doesnt_complete [0.048999s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_hooks.TestContextHook.test_context_hook_noauth_token_removed [0.059977s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_080_nodes_states_console_put_admin [0.065894s] ... 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-5bff3b60-7bb3-4169-9af7-be93261de9d9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi [0.051793s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_hooks.TestContextHook.test_context_hook_not_admin [0.042944s] ... ok
{2} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api [0.043357s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up [0.052931s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_081_nodes_states_console_put_member [0.077868s] ... 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-5e750868-4530-4d57-b716-73c20df0c518
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_method.TestExpose.test_exception [0.038570s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things/ouch WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-8c3fa061-29f8-4486-a8a3-773a40d65577
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"ouch\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy [0.052231s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_082_nodes_states_console_put_reader [0.069516s] ... 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-fd2494e4-b71e-42a1-81f5-723cbaa1c1e5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_method.TestExpose.test_expose [0.045246s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things WITH {'name': 'foo', 'flag': True} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-75a3e707-4df4-4176-aa23-bd99371d8f34
{"foo": true}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step [0.060637s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_method.TestExpose.test_expose_validation [0.040222s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things WITH {'name': 'foo', 'flag': 'truish'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9f4b260a-1e5d-4d70-accd-f639e55fc559
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid flag: Unrecognized value 'truish', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_soft_poweroff_fails [0.233755s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_083_nodes_states_console_put_service [0.079636s] ... 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-ef08c1f2-3c78-4c28-aa0f-2444b3b52f8c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_method.TestExpose.test_post_body [0.034356s] ... 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-5f88c8e9-a598-4fe0-b763-d446d101376d
{"three": "three", "four": "four", "five": "five"}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log [0.057430s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_method.TestExpose.test_post_body_validation [0.030877s] ... 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-557a6e04-d54d-4001-866b-0a634a451bb0
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'fourrrr' is too long\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_soft_poweroff_race [0.069870s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_method.TestExpose.test_response_204 [0.033059s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things/no_content WITH {} GOT Response: 204 No Content
Openstack-Request-Id: req-e2f10171-9114-426b-90a7-9191cd55c5d9
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps [0.046182s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_084_nodes_vendor_passthru_methods_get_admin [0.074187s] ... 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-05528cca-04a2-41c0-bcdb-6d6df1331efa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps [0.054802s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_method.TestExpose.test_response_content [0.050749s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things/response_content WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2537926a-20dc-4606-92f4-3d878a46999a
"nothing"
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority [0.042990s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_085_nodes_vendor_passthru_methods_get_member [0.069629s] ... 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-85fc6515-ef05-4b9f-ad2f-32c73a95224b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties [0.028089s] ... ok
{2} ironic.tests.unit.api.test_method.TestExpose.test_response_custom_status [0.031878s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things/response_custom_status WITH {} GOT Response: 202 Accepted
Content-Type: application/json
Openstack-Request-Id: req-99fcf2e8-5b8d-4b63-b544-92c944bb3d61
"accepted"
{3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_busy [0.046543s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_middleware.TestCORSMiddleware.test_invalid_cors_get_request [0.027424s] ... ok
{2} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request [0.029620s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_086_nodes_vendor_passthru_methods_get_reader [0.068116s] ... 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-2dd635ee-2008-4999-b41d-d8b22439fa75
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_deploy [0.059824s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.084750s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_middleware.TestCORSMiddleware.test_valid_cors_get_request [0.040590s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_interface [0.049550s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_middleware.TestCORSMiddleware.test_valid_cors_options_request [0.027656s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning [0.051044s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_087_nodes_vendor_passthru_get_admin [0.077094s] ... 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-99dff188-cda2-4cb6-90f2-3bae82a8e84b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root [0.035601s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5d25cc31-429d-4ac1-8e81-e1b3bbf7d61e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.22
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]}
{3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_steps [0.049648s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.042300s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics [0.030367s] ... ok
{2} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root [0.043857s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9484f083-799b-4c2d-8132-deb4610e90cc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.23
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]}
{3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state [0.026064s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port [0.058570s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state_unknown [0.026158s] ... ok
{2} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root [0.047602s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2fa12959-987a-4aad-9fc3-965100ad1621
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port [0.052333s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot [0.057608s] ... ok
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_root.TestV1Root.test_get_v1_root [0.056244s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e4cfa3de-0a8b-4bde-93cd-565e3c2c2073
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down [0.043894s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_another_state [0.057540s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions [0.082789s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    foo() migrated 15 of 15 objects.
{3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_into_instance [0.044078s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot [0.059545s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_088_nodes_vendor_passthru_get_member [0.272862s] ... 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-4890b528-33f9-47ff-bcc6-05d24197115b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_soft_poweroff_retry [0.057922s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_timeout [0.062891s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_089_nodes_vendor_passthru_get_reader [0.065587s] ... 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-0cc71e33-0517-480e-b175-f80a1390b5db
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate [0.025571s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning [0.042487s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails [0.024552s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_no_fast_track [0.024936s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port [0.043874s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_090_nodes_vendor_passthru_post_admin [0.078447s] ... 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-bdb96eab-239f-4e86-8df2-8fb1c1b34f4b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists [0.029680s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail [0.023518s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate [0.047164s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid [0.023540s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_091_nodes_vendor_passthru_post_member [0.075750s] ... 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-ada3dffb-8aa3-4150-95a3-9d1bc2a03416
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir [0.021379s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_write_image [0.048338s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir [0.020435s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file [0.024103s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req [0.042046s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_092_nodes_vendor_passthru_post_reader [0.076763s] ... 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-141cde24-8236-4617-a1cb-3a67ff32cbf3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found [0.030760s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps [0.035908s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num [0.025885s] ... ok
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 [0.346138s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 15 of 15 objects.
func2() migrated 20 of 20 objects.
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path [0.027819s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console [0.024974s] ... ok
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done [0.029719s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 10 of 10 objects.
func2() migrated 0 of 0 objects.
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception [0.025448s] ... ok
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone [0.032120s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 10 of 15 objects.
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_093_nodes_vendor_passthru_put_admin [0.102913s] ... 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-77d42ee0-e795-4b7f-a18d-c0a8d65fb64a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip [0.053876s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.TestAnsibleMethods.test__get_python_interpreter [0.030915s] ... ok
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone [0.044713s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 10 of 10 objects.
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info [0.027550s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_094_nodes_vendor_passthru_put_member [0.075269s] ... 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-0c937ee2-178f-4421-81c8-5b7abf5f1b53
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults [0.027855s] ... ok
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception [0.055708s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    Error while running foo: bar.
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook [0.028506s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_095_nodes_vendor_passthru_put_reader [0.067996s] ... 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-49979810-8723-410c-b908-aea6e7f32800
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none [0.039531s] ... ok
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done [0.025138s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 10 of 10 objects.
func1() migrated 0 of 0 objects.
func2() migrated 0 of 0 objects.
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations [0.023277s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Running batches of 50 until migrations have been completed.
Data migrations have completed.
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_096_nodes_vendor_passthru_delete_admin [0.075972s] ... 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-92623f45-ba35-4f71-acd3-381a5fd85389
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches [0.024546s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Running batches of 50 until migrations have been completed.
Data migrations have completed.
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception [0.026218s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Running batches of 50 until migrations have been completed.
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 [0.027776s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Malformed option m1key1=value1
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_vendor_passthru_delete_member [0.063924s] ... 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-26c3aec3-ff26-48c2-a705-93b5a164078d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 [0.035370s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Malformed option m1.key1value1
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt [0.209151s] ... ok
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg [0.031707s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    "max-count" must be a positive value.
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos [0.026391s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_098_nodes_vendor_passthru_delete_reader [0.071288s] ... 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-e46c7a97-822f-460f-8915-fc9608f207d3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone [0.026995s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Data migrations have not completed. Please re-run.
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options [0.024472s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Running batches of 50 until migrations have been completed.
Data migrations have completed.
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints [0.045773s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_099_nodes_traits_get_admin [0.065085s] ... 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-55a9bbb5-b985-4b43-ad0f-64caf4b7a545
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"traits": ["trait1"]}
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions [0.028932s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced [0.048216s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad [0.027325s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_100_nodes_traits_get_member [0.066111s] ... 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-8c1a0ec0-dbd3-4f44-abfb-56940bab719b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"traits": ["trait1"]}
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models [0.026760s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_iinfo [0.047644s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad [0.027004s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    This is bad
{2} ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid [0.020806s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_override [0.046438s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_101_nodes_traits_get_reader [0.066905s] ... 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-c724f26c-e71c-4242-b7bd-c4888e2d3dc7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"traits": ["trait1"]}
{2} ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid_colon_key_name [0.021977s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars [0.026344s] ... ok
{2} ironic.tests.unit.common.test_args.ValidateTypesTest.test_types [0.020005s] ... ok
{2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context [0.021432s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables [0.044464s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_context.RequestContextTestCase.test_create_context_with_environ [0.021721s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_traits_put_admin [0.068071s] ... 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-459100b4-7eb6-457e-b70a-26e68d16988a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict [0.020582s] ... ok
{2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict_older_api_server [0.020038s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file [0.049004s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_context.RequestContextTestCase.test_thread_with_context [0.021614s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_103_nodes_traits_put_member [0.066917s] ... 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-fdba705f-9b54-44b2-8c7f-43f0c8cf7ec2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context [0.021306s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_json [0.048406s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_context.RequestContextTestCase.test_to_dict_get_auth_token_info [0.021080s] ... ok
{2} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values [0.020013s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_104_nodes_traits_put_reader [0.067481s] ... 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-4d140b45-2b1b-435a-b122-faea304fa463
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url [0.043911s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestGlanceSwiftTempURL.test__validate_temp_url_config [0.021414s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay [0.019508s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill [0.828009s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated [0.043397s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers [0.022551s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_105_nodes_traits_delete_admin [0.063799s] ... 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-563c1757-d75c-4b94-9e50-e5dcf437b40a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception [0.022286s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid [0.036051s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints [0.050579s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestGlanceSwiftTempURL.test_swift_temp_url [0.035931s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running [0.035204s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_106_nodes_traits_delete_member [0.066143s] ... 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-0b4f1d74-d51c-40a9-a352-e8f60a232c3e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook [0.034731s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected [0.037430s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override [0.026172s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default [0.054619s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix [0.030197s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 [0.025154s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_107_nodes_traits_delete_reader [0.064781s] ... 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-d1308eb4-c127-4387-a87f-6dfa9668d396
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore [0.029701s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug [0.025639s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname [0.050810s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug [0.032551s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected [0.044088s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 [0.047966s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_108_nodes_traits_trait_put_admin [0.080753s] ... 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-cbcd0ad8-275a-4f5a-9f2a-7043e802b9ba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail [0.025124s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix [0.042106s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps [0.024417s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv6 [0.047486s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing [0.024570s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info [0.030783s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_no_free_ports [0.026310s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique [0.026381s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_109_nodes_traits_trait_put_member [0.079420s] ... 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-a8a973ac-6103-4e08-9d09-31befe33c84c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected [0.030956s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry [0.030592s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers [0.034468s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces [0.051022s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_success [0.032034s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected [0.029047s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_110_nodes_traits_trait_put_reader [0.076857s] ... 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-917e7191-af83-479d-8b5a-b9fcd61201c4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url [0.034542s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_without_ethernet_interfaces [0.044665s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info [0.031106s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url [0.023505s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_access_via_auth_token_enabled [0.021155s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_BIOS_boot_mode [0.040053s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp [0.022528s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_admin_if_config_enabled [0.020971s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 [0.021841s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_community_image [0.024897s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_111_nodes_traits_trait_delete_admin [0.096456s] ... 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-4660145d-82d8-4ac7-9a58-a83a5b5630b9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_UEFI_boot_mode [0.045807s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_private_image_owned_by_conductor [0.023417s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_public_image [0.020284s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf [0.055735s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_without_boot_mode [0.044997s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_shared_image_if_member [0.022196s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_invalid_console_port_range [0.023109s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_nodes_traits_trait_delete_member [0.065971s] ... 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-1a6b1f72-c37f-4161-b1c8-b85611e567cc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_deny_private_image_different_owner [0.024080s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties [0.033308s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file [0.025850s] ... ok
{2} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip [0.031195s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail [0.028037s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_inspect_hardware_with_ethernet_interfaces_mac [0.044337s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_113_nodes_traits_trait_delete_reader [0.069261s] ... 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-8d199f9d-1142-4483-a359-aade4524e10d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip_node_override [0.030681s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console [0.034081s] ... ok
{2} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_copy [0.026608s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task [0.053457s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail [0.039324s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_114_nodes_vifs_get_admin [0.072532s] ... 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-41f40bca-c4d1-4286-a66b-b263de96ceba
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link [0.031577s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid [0.037815s] ... ok
{2} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link_no_restorecon [0.028678s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_failed [0.054966s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_publisher.LocalPublisherTestCase.test_unpublish_local [0.028090s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir [0.042863s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_115_nodes_vifs_get_member [0.064940s] ... 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-821412a9-f4c7-48ed-adc8-4e34b4db4913
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing [0.051066s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid [0.041075s] ... ok
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning [0.063934s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_116_nodes_vifs_get_reader [0.072273s] ... 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-1bf7ac7a-0b3c-4da3-8fa1-f1b33189cd86
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed [0.054501s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout [0.052755s] ... ok
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning [0.050007s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed_idrac5 [0.061357s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_117_nodes_vifs_get_service [0.073626s] ... 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-7c4fb132-40ca-4f0d-8f26-f80fd367e6af
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console [0.066397s] ... ok
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing [0.053416s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing [0.047673s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_118_nodes_vifs_post_admin [0.069585s] ... 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-6d301672-60ba-4421-b738-7d444372b02f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups [0.056235s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 [0.074498s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export [0.062397s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 [0.033974s] ... ok
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info [0.054553s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_119_nodes_vifs_post_member [0.079202s] ... 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-bca26809-576e-4423-934e-42acaf90b366
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout [0.032670s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export_failed [0.050983s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info [0.048244s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout [0.034648s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_not_drac [0.033067s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_120_nodes_vifs_post_reader [0.074455s] ... 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-0accddf0-4237-45f5-8ef1-2a742ef8a83a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled [0.036262s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status [0.040433s] ... ok
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info [0.049789s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail [0.037415s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_no_task_monitor_url [0.033608s] ... ok
{2} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info [0.048269s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_121_nodes_vifs_post_service [0.077587s] ... 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-93e0877f-a225-4b8b-a57f-fb47367a7700
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_locked [0.045041s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_notfound [0.033310s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_122_nodes_vifs_post_service_project [0.075842s] ... 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-2e46d570-91e1-44e9-bb07-2bee7b7d1a3d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node [0.111020s] ... ok
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.drac.test_management.DracRedfishManagementTestCase.test__set_failed_clean [0.058798s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_invalid_power_update [0.026881s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 [0.025066s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_deploy [0.049364s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_2 [0.025478s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir [0.223497s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 [0.025676s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid [0.033932s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_clean [0.056265s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console [0.025372s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid [0.025327s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_deploy [0.052586s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console [0.025363s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold [0.030312s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_123_nodes_vifs_node_vif_ident_delete_admin [0.242426s] ... 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-0896785d-497c-4e1e-bde2-f8326125bf1c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid [0.027314s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_empty [0.030254s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range [0.022710s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_missing [0.037082s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning [0.030895s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_124_nodes_vifs_node_vif_ident_delete_member [0.070252s] ... 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-a45ee4d5-5aed-478d-8ef1-ec573e8bfd08
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_4 [0.192871s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_missing [0.031086s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying [0.037521s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_not_supported [0.028252s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_5 [0.034275s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all [0.038029s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_125_nodes_vifs_node_vif_ident_delete_reader [0.068953s] ... 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-eac114c6-1249-4681-9ae3-0e9c53fd620d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed [0.026279s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova [0.024492s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one [0.036668s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url [0.024928s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_126_nodes_vifs_node_vif_ident_delete_service [0.064344s] ... 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-fab08b1d-9aa6-4d0a-a7bb-18d2b2e782b8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_non_pregenerated_token [0.040447s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 [0.025618s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 [0.024628s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_polling_if_not_set [0.036308s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 [0.024982s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_127_nodes_management_indicators_get_allow ... SKIPPED: Not implemented yet
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all [0.037100s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 [0.027088s] ... ok
{2} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config [0.021411s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one [0.035529s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_oem_missing [0.210508s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_128_nodes_management_indicators_component_get_allow ... SKIPPED: Not implemented yet
{2} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_bad_file [0.022773s] ... ok
{2} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_default [0.019167s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue [0.047682s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda [0.057686s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_no_match [0.021535s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_129_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: Not implemented yet
{2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden [0.021752s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_clean_step [0.053775s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_policy.PolicyTestCase.test_authorize_passes [0.021391s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda_img_checked [0.056404s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_130_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: Not implemented yet
{2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered [0.018855s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_verify_step [0.053441s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file [0.037255s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image [0.058538s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_export_failed [0.029776s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_131_portgroups_get_admin [0.069049s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e0e50a8e-762c-4985-940f-197ef7388310
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace [0.039347s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_name_missing [0.025318s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image_checked [0.056848s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args [0.039372s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_success [0.035352s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_132_portgroups_get_member [0.064821s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f698476c-513a-4cd3-857f-1eacf3854266
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_file_not_found [0.027904s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env [0.040813s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image [0.056930s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema [0.030864s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_133_portgroups_get_reader [0.066756s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7188406d-6adc-412e-bac6-8d7171fe8ec7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipa_debug_rescue [0.043816s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_name_missing [0.027047s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image_checked [0.062596s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_driver_info [0.044925s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success [0.040985s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found [0.047592s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success [0.031837s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_134_portgroups_post_admin [0.089999s] ... 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/86b3ff05-cd70-46c3-952a-bfa1b2fc9668
Openstack-Request-Id: req-0c1b0d62-cc24-4bb6-a8c6-087cb4ca4cac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "86b3ff05-cd70-46c3-952a-bfa1b2fc9668", "created_at": "2025-05-29T16:57:54.155323+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/86b3ff05-cd70-46c3-952a-bfa1b2fc9668", "rel": "self"}, {"href": "http://localhost/portgroups/86b3ff05-cd70-46c3-952a-bfa1b2fc9668", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/86b3ff05-cd70-46c3-952a-bfa1b2fc9668/ports", "rel": "self"}, {"href": "http://localhost/portgroups/86b3ff05-cd70-46c3-952a-bfa1b2fc9668/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_instance_info [0.045810s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image [0.044815s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_known_good_state [0.050045s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_with_default [0.044006s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_checked [0.044549s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe [0.038444s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac [0.048484s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_135_portgroups_post_member [0.100254s] ... 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-62fe7c04-f3b7-430c-a6f6-4c2c4edb121c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_not_checked [0.045386s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_ipa_debug [0.040112s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_clean_step [0.053254s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_part_img_checked [0.045391s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_136_portgroups_post_reader [0.073108s] ... 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-745d06b5-e5c4-4a25-ae3b-fc0271aadcc7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_local_boot [0.045981s] ... ok
{0} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_verify_step [0.053018s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image [0.045716s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk [0.038789s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none [0.029112s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_137_portgroups_detail_get_admin [0.066220s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2ba29b34-c0c8-471b-91b9-9f766cd7ebc4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:57:54.371735+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none_by_arch [0.025666s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_opts_ramdisk_opt [0.040949s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_local_download [0.046711s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy [0.025783s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_rescue [0.043404s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_remote_download [0.046348s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config [0.025187s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_138_portgroups_detail_get_member [0.067544s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7c8bafae-86ae-4c94-907f-cde3fbd1e4ab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:57:54.440394+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config_by_arch [0.026491s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_remote_download_rebuild [0.050612s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_deprecated [0.025745s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image [0.059192s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_139_portgroups_detail_get_reader [0.068351s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-069bf4a8-0cf5-4168-9079-1a631426bde1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:57:54.510731+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso [0.025838s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_is_a_path [0.046581s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ramdisk_params [0.041834s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso_deprecated [0.026033s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc [0.024079s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path [0.036611s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_140_portgroups_portgroup_ident_get_admin [0.069972s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f22d86da-c398-4536-a3c1-94170e75991e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:57:54.576313+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect [0.044149s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue [0.027459s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info [0.025892s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_config [0.025078s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk [0.024990s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect_not_path [0.046893s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_iso [0.025827s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe [0.024106s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_boot_iso_only [0.025858s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_141_portgroups_portgroup_ident_get_member [0.082784s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5aabe132-7eea-42ae-8c4a-12e51f7da281
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:57:54.648693+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.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel [0.024748s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good [0.025108s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception [0.044877s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image [0.024127s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel [0.035596s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda [0.024602s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_142_portgroups_portgroup_ident_get_reader [0.070110s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6beb240f-43e7-4cb0-b427-8979ae25c0cc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:57:54.728802+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false [0.044352s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe [0.036915s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source [0.024556s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true [0.042301s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel [0.027152s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe_anaconda [0.036371s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk [0.024911s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_143_portgroups_portgroup_ident_patch_admin [0.083918s] ... 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-c28db0ea-7127-4158-b7bd-d773bf4b72aa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create [0.045678s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.PXEInterfacesTestCase.test_get_instance_image_info_boot_iso [0.040701s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy [0.025768s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image [0.023211s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_kickstart_stage2_missing [0.039014s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image [0.050968s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_image_utils.IloImageHandlerTestCase.test_ilo_kernel_param_config [0.024242s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_144_portgroups_portgroup_ident_patch_member [0.074493s] ... 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-7cda030d-b0fa-431d-af4d-014fa558c4a1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_redfish_kernel_param_config [0.025832s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot [0.039380s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_as_url_ignored [0.025225s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url [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(
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image [0.033890s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_ignored [0.025179s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_145_portgroups_portgroup_ident_patch_reader [0.080059s] ... 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-ea57abad-4048-4160-bfd5-6a13844c7bdb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip [0.024670s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_swift_image [0.056793s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_boot_option [0.054738s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip_as_url [0.024820s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info [0.027616s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ipv6_as_url [0.026369s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_146_portgroups_portgroup_ident_delete_admin [0.068694s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-b4a7359c-fea0-46fb-b7f3-895337de0ca2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_url_http [0.050870s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_redfish_bmc_address_ipv6_brackets_no_scheme [0.025470s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info [0.043283s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.PXEInterfacesTestCase.test_parse_driver_info_deploy [0.026083s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host [0.030975s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy [0.025231s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_instance_image_info [0.042711s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host_in_url [0.025924s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_147_portgroups_portgroup_ident_delete_member [0.076441s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f9e1b98b-f056-41ef-9fe1-3c26dd4ee428
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.025953s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy [0.046911s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue [0.026615s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift [0.070170s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.023739s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info [0.043757s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_148_portgroups_portgroup_ident_delete_reader [0.124497s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-16b0b7ab-98f3-4f4a-9fb2-4bcdcd0e3818
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel [0.052281s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on [0.049923s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift_exception [0.093847s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info [0.043834s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk [0.052562s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel [0.025874s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_149_nodes_portgroups_get_admin [0.095538s] ... 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-d33b8fe9-0533-42fc-ac5e-95fab576be6b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__store_inspection_data_in_swift [0.064773s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk [0.026090s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy [0.025339s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso [0.085842s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db [0.042434s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.025523s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db_exception [0.024887s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_nostore [0.023134s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue [0.035932s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_150_nodes_portgroups_get_member [0.117299s] ... 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-73a89e31-a237-493b-9d25-a3337a748ccf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift [0.025787s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_ramdisk [0.026415s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume [0.097980s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift_exception [0.024987s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue [0.029225s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_db [0.027360s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property [0.021910s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.045236s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_nostore [0.024903s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema [0.022131s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_151_nodes_portgroups_get_reader [0.091487s] ... 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-10c2fdfe-1a76-49e3-ae95-2713b1315df4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_swift [0.025016s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type [0.022481s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting [0.052496s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_int_type [0.026550s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume [0.021006s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing [0.048258s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_152_nodes_portgroups_get_service [0.081482s] ... 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-6ec8ac2f-bf93-48b6-8eb3-531f5503a279
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume [0.022486s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks [0.021131s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk [0.039744s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_153_nodes_portgroups_get_service_project [0.076023s] ... 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-da9a4c85-b017-4803-96b2-2422f9ff1af9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume [0.051846s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_no_on_error [0.192092s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios [0.041162s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_154_nodes_portgroups_get_service_project_disabled [0.075337s] ... 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-bd605670-8a68-4077-8006-4a2189077b87
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_post_hook_on_error_callback [0.029412s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_pre_hook_on_error_callback [0.029812s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks [0.178541s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level [0.020767s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries [0.046184s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_share_physical_disks [0.019876s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb [0.019869s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_404_exception [0.045877s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_max_size_gb [0.020025s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk [0.019558s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exception [0.044334s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_no_raid_level [0.020497s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk [0.216848s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_no_size_gb [0.021676s] ... ok
{3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exceptions [0.045068s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_okay [0.020347s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay_software [0.019606s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.047674s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_155_nodes_portgroups_detail_get_admin [0.253147s] ... 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-203e6154-ba3e-4825-b3eb-b79d15f46499
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:57:55.860461+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_http_boot_enabled [0.036244s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_too_few_physical_disks [0.022995s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume [0.020402s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.046340s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_zero_logical_disks [0.020393s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk [0.067480s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_zero_size_gb [0.019929s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_156_nodes_portgroups_detail_get_member [0.077551s] ... 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-d5c66eb3-1c89-4c9d-95aa-9b85e96b7b19
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:57:56.109965+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.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects [0.018307s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image [0.064593s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_release_mappings.ReleaseMappingsTestCase.test_current_object_versions [0.019008s] ... ok
{2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version [0.017767s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_rescue [0.068394s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions [0.018187s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_157_nodes_portgroups_detail_get_reader [0.078266s] ... 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-b98820f4-1df4-4e3a-9818-9703499aeec5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:57:56.189814+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.067293s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered [0.019033s] ... ok
{2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported [0.022253s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_uefi [0.067918s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_release_mappings.ReleaseMappingsTestCase.test_structure [0.023734s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_portgroups_detail_get_service [0.075530s] ... 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-d1b1b7f6-d0e7-4207-990c-a4224d1c74eb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:57:56.266858+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.common.test_rpc.TestRequestContextSerializer.test_deserialize_context [0.019327s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance [0.045441s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rpc.TestRequestContextSerializer.test_deserialize_entity [0.018763s] ... ok
{2} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base [0.018949s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover [0.111417s] ... ok
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.common.test_rpc.TestRequestContextSerializer.test_serialize_context [0.017951s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk [0.049298s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rpc.TestRequestContextSerializer.test_serialize_entity [0.018810s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_159_nodes_portgroups_detail_get_service_project [0.080200s] ... 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-69248b66-8cec-4545-9085-3684bf872eea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-29T16:57:56.343052+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.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base [0.019327s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.063763s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.049323s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rpc.TestUtils.test_get_sensors_notifier [0.019744s] ... ok
{2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier [0.018761s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_160_nodes_portgroups_detail_get_service_project_disabled [0.068718s] ... 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-50f5fd50-b8de-401b-bb2a-ae54ef699c04
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties [0.036590s] ... ok
{2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id [0.018691s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [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(
{2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier [0.019842s] ... ok
{2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier [0.018563s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance [0.050205s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id [0.017943s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_161_ports_get_admin [0.069602s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-48487ebb-821a-47fe-93d6-4a6712bd0583
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_iso [0.056995s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rpc.TestUtils.test_init_globals_notifications_disabled [0.034136s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_active [0.054674s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rpc.TestUtils.test_init_globals_notifications_enabled [0.034454s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_162_ports_get_service [0.067903s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e12e6b0a-021a-401c-b03c-a2e1bbb205c5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.068286s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rpc.TestUtils.test_init_globals_with_custom_topics [0.035955s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart [0.066466s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_states.StatesTest.test_state_values_length [0.018675s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_163_ports_get_service_project [0.065804s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-abd5405c-3c90-4fa4-bc4f-33c237b3c4fb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.060400s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_utils.IsHttpUrlTestCase.test_is_http_url [0.018745s] ... ok
{2} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file [0.025723s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart_bios [0.065935s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_utils.JinjaTemplatingTestCase.test_render_string [0.019003s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate [0.047292s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_164_ports_get_service_project_disabled [0.066305s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8a79263f-989d-40d0-a530-b1f9a08884a4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{2} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes [0.020104s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_lenovo [0.050524s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume [0.043255s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection [0.034723s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_165_ports_get_member [0.066929s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-26091b69-7f3e-45c5-8360-fcb20986b468
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces [0.072378s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.064649s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection_missing [0.038601s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_166_ports_get_reader [0.066356s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2538c76c-8f02-457b-a97e-13a438d6dc73
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default [0.065832s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.063077s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_glance [0.051870s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver [0.047622s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_167_ports_post_admin [0.070503s] ... 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-1dc5fcc3-54d2-4b00-9187-68076ba2337a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk [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(
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_all [0.103420s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.047757s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_168_ports_post_member [0.077297s] ... 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-40f290e1-e522-4586-9fe9-1efaf4f4883f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_bios [0.067096s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue [0.048325s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNextDeployStepTestCase.test__do_next_deploy_step_async [0.095150s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_deprecated [0.046919s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.068426s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_169_ports_post_reader [0.075977s] ... 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-196aa8f7-46c1-4c02-b728-80c123429ecb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.040084s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.062986s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_170_ports_detail_get_admin [0.067174s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a0dcb740-3886-42a0-81aa-8ada00e7ce26
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:57:57.121831+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance [0.044975s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step [0.097892s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.062577s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.054511s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_171_ports_detail_get_member [0.069415s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b64de74a-bb0e-448c-af0b-31e34b6ce0e2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:57:57.191972+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.043079s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.067124s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNextDeployStepTestCase.test__do_next_deploy_step_dynamic [0.112169s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_172_ports_detail_get_reader [0.066913s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ab77fda5-c841-4ceb-a434-46f87f247f7d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:57:57.257920+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance [0.043087s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.067070s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.048109s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_173_ports_port_id_get_admin [0.069947s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-14375189-bd6c-4a2a-baa6-ca2dd967d557
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:57:57.327282+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_fast_track [0.103897s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_deploying [0.043213s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.068604s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_174_ports_port_id_get_member [0.071813s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5c073860-a0f0-49d8-bc50-72c61fb6d5b5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:57:57.400469+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.042278s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.064323s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNextDeployStepTestCase.test__do_next_deploy_step_in_deploywait [0.092419s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios [0.047025s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_175_ports_port_id_get_reader [0.072408s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bf883020-933a-40f6-b761-8201bd0f36cd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:57:57.471362+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume [0.046193s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.077174s] ... ok
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.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.045451s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_176_ports_port_id_patch_admin [0.092411s] ... 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-2539a75b-1ae2-4c58-a42d-2648c80f94aa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.045004s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.076280s] ... ok
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.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.050973s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_177_ports_port_id_patch_member [0.093481s] ... 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-45d3947d-ba52-4ef7-8a55-25c749853247
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.078360s] ... ok
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.inspector.hooks.test_accelerators.AcceleratorsTestCase.test_accelerators [0.053466s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done [0.264107s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_178_ports_port_id_patch_reader [0.073785s] ... 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-984e56af-eb17-43cb-9eb7-79abac7f3fdb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_boot_mode.BootModeTestCase.test_boot_mode [0.045674s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.068122s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.038943s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_pci_devices.PciDevicesTestCase.test_pci_devices [0.046263s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_179_ports_port_id_delete_admin [0.071116s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-d7b287fc-5565-4bdd-b622-9b2ce35c28d5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console [0.098881s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.040773s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port [0.038883s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_added [0.082697s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_180_ports_port_id_delete_member [0.071875s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ddb811b2-593d-49c0-ba11-0f13c2071a5d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error [0.108301s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_all [0.072797s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_181_ports_port_id_delete_reader [0.067222s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1e85b62c-05b8-44c3-ac75-44cd02efe9b6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_none [0.090121s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_present [0.071938s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_182_nodes_ports_get_admin [0.071539s] ... 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-0425eccf-75fb-4ad0-af1a-971e96dc8113
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy [0.051118s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good [0.208094s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_pxe_enabled [0.066814s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_183_nodes_ports_get_member [0.074151s] ... 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-38e340dc-2621-465d-a75d-7049eb44b1fe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image [0.039553s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_first_agent_boot [0.051243s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_all_match [0.049496s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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 [0.043626s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_184_nodes_ports_get_reader [0.074298s] ... 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-53c917cb-4a76-4248-a916-f90bbbbaf079
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_no_skip_step [0.049831s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_first_match_on_skip_list_use_second [0.051804s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.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(
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation [0.059889s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_185_nodes_ports_detail_get_admin [0.078197s] ... 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-9cf77fae-88e7-41ff-ba15-c1ebd095b891
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:57:58.243512+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_fail_http_url_not_set [0.050889s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.051958s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_186_nodes_ports_detail_get_member [0.071156s] ... 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-9b672a26-80de-46b9-bf1b-3cfac283953d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:57:58.318598+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_agent_busy [0.089847s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_no_image_source_for_local_boot [0.039875s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local [0.041002s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_incorrect_hint [0.210761s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value [0.102363s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false [0.040400s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_local_gb_without_spacing [0.047349s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off [0.023140s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on [0.022314s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_no_hints [0.043159s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset [0.023442s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off [0.022544s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception [0.104057s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_one_matches [0.046756s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on [0.022599s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_187_nodes_ports_detail_get_reader [0.237364s] ... 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-87817398-7efa-4d53-a0ab-adb7d6110bc4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-29T16:57:58.552020+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects [0.022199s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_root_device_skip_list [0.044898s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off [0.022848s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on [0.022037s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_handled_exception [0.085625s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_size_invalid [0.039180s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_188_portgroups_ports_get_admin [0.078497s] ... 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-8e56564d-e22d-416f-b337-95bb8dd68593
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset [0.023993s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off [0.022646s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_size_string [0.049027s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on [0.022464s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects [0.021529s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_189_portgroups_ports_get_member [0.077488s] ... 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-fac66800-0e7f-4bed-b4ac-c99985b9e201
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_zero_size [0.054194s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off [0.023246s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception [0.126856s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on [0.023108s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_agent.ContinueInspectionTestCase.test [0.040191s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset [0.024353s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_190_portgroups_ports_get_reader [0.079617s] ... 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-cd71c13e-bc90-4411-8c2e-785faafcf2b1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off [0.023372s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_active [0.057216s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.inspector.test_agent.ContinueInspectionTestCase.test_store_logs [0.042018s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on [0.022179s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off [0.021829s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_wait [0.054709s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on [0.023453s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_191_portgroups_ports_detail_get_admin [0.078639s] ... 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-84cf224e-5e0e-4c5a-9f03-695d8572375f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset [0.023177s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off [0.022091s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on [0.022230s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_192_portgroups_ports_detail_get_member [0.071926s] ... 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-5e045d4a-8456-4461-ab2b-d19b8b349adf
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects [0.022638s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps [0.117471s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects [0.022398s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off [0.024399s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_193_portgroups_ports_detail_get_reader [0.069704s] ... 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-b6d10de1-dc6d-4350-bad4-500d2ac0d1bc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"ports": []}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on [0.024022s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset [0.024013s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off [0.024178s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_get_admin [0.061644s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fcddbf81-3b71-4feb-90cb-a4c50e2f60b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot [0.094617s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on [0.024275s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects [0.022241s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_195_volume_get_member [0.062220s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1623cbfb-ae6a-48ac-a32c-e4652233a7fb
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{0} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client [0.334329s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off [0.026749s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on [0.027470s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot_fail [0.122222s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_196_volume_get_reader [0.062198s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bdad2032-64f9-469d-94e5-5e8f048094e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver [0.025352s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset [0.026189s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off [0.024250s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_197_volume_get_service [0.063925s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4cee8328-b083-4761-8ff1-72a43e0f413d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on [0.026220s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_cleaning [0.103993s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure [0.023548s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_198_volume_get_service_project [0.060539s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8f401267-bd86-4553-a99b-f92cb8959618
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu [0.022536s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off [0.022781s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on [0.022855s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_199_volume_connectors_get_admin [0.067125s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6a3d25d3-e07d-490e-bdb8-09686d2b7978
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "8ad25089-5331-45e4-9139-54ac3004a7a2", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8ad25089-5331-45e4-9139-54ac3004a7a2", "rel": "self"}, {"href": "http://localhost/volume/connectors/8ad25089-5331-45e4-9139-54ac3004a7a2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset [0.025006s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy [0.098870s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects [0.022873s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off [0.022172s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_200_volume_connectors_get_member [0.068020s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c08b01ad-fb4d-4e6c-a2dc-50466232d2ad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "e2398db6-3b3b-48c8-ac7a-6edcd839e283", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e2398db6-3b3b-48c8-ac7a-6edcd839e283", "rel": "self"}, {"href": "http://localhost/volume/connectors/e2398db6-3b3b-48c8-ac7a-6edcd839e283", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on [0.022331s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client_connection_problem [0.334053s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off [0.022594s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy [0.094092s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on [0.023592s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset [0.022364s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off [0.033511s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated [0.077999s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_201_volume_connectors_get_reader [0.064793s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e01d1b21-e7bb-4c33-9cb7-33a616b10d51
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "e678ff51-13cd-453a-a08b-a3949299b025", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e678ff51-13cd-453a-a08b-a3949299b025", "rel": "self"}, {"href": "http://localhost/volume/connectors/e678ff51-13cd-453a-a08b-a3949299b025", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_202_volume_connectors_get_service [0.064650s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d3a95eda-b9aa-427f-83e5-b2662cb43d6a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "d24bd5e5-a814-4e20-bf6f-1fc8af6e2d1b", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/d24bd5e5-a814-4e20-bf6f-1fc8af6e2d1b", "rel": "self"}, {"href": "http://localhost/volume/connectors/d24bd5e5-a814-4e20-bf6f-1fc8af6e2d1b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on [0.031757s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects [0.023668s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off [0.025524s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_locked [0.076090s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_203_volume_connectors_get_service_project [0.063962s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3d26f90e-7640-4787-a811-7fc172c0259d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "0458a151-befb-4596-93b3-19a186fc7f0f", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0458a151-befb-4596-93b3-19a186fc7f0f", "rel": "self"}, {"href": "http://localhost/volume/connectors/0458a151-befb-4596-93b3-19a186fc7f0f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on [0.027153s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset [0.023731s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_204_volume_connectors_get_service_project_disable [0.062925s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-929ac371-5a53-45c9-99ca-96aecf9ea145
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": []}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off [0.025188s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full [0.087298s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on [0.024117s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off [0.022666s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_volume_connectors_post_admin [0.071020s] ... 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/c368c655-c002-45f8-9ed0-e18f6e10f6b2
Openstack-Request-Id: req-97c39447-bfab-42fa-999c-e2f7a9bbd06d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "c368c655-c002-45f8-9ed0-e18f6e10f6b2", "created_at": "2025-05-29T16:57:59.823874+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/c368c655-c002-45f8-9ed0-e18f6e10f6b2", "rel": "self"}, {"href": "http://localhost/volume/connectors/c368c655-c002-45f8-9ed0-e18f6e10f6b2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on [0.024167s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state [0.076965s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects [0.023709s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off [0.023517s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_volume_connectors_post_member [0.071197s] ... 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/21880496-c7b5-42c7-acce-19fe312e10fd
Openstack-Request-Id: req-5e03f734-e3eb-40b2-953b-39229cf8b8b2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "21880496-c7b5-42c7-acce-19fe312e10fd", "created_at": "2025-05-29T16:57:59.895651+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/21880496-c7b5-42c7-acce-19fe312e10fd", "rel": "self"}, {"href": "http://localhost/volume/connectors/21880496-c7b5-42c7-acce-19fe312e10fd", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort [0.048494s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_clean_up_fail [0.047271s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_volume_connectors_post_reader [0.066717s] ... 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-77bcbfb9-5934-455d-baa3-a56e6d68998e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_volume_connectors_post_service [0.070122s] ... 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/da6f1905-b24d-4fcd-a8b6-adf796f3bd99
Openstack-Request-Id: req-4c0006c5-2b24-4f5e-ad49-da8c8948cb76
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "da6f1905-b24d-4fcd-a8b6-adf796f3bd99", "created_at": "2025-05-29T16:58:00.033513+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/da6f1905-b24d-4fcd-a8b6-adf796f3bd99", "rel": "self"}, {"href": "http://localhost/volume/connectors/da6f1905-b24d-4fcd-a8b6-adf796f3bd99", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client_standalone [0.529374s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state [0.090331s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_exception_ignored [0.028131s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_check_inspecting [0.025679s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_209_volume_connectors_post_service_project [0.071948s] ... 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/f9a709fb-f379-4e03-9d88-aa127f88b9de
Openstack-Request-Id: req-1055aa34-7539-4383-9862-12eca6f1645e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "f9a709fb-f379-4e03-9d88-aa127f88b9de", "created_at": "2025-05-29T16:58:00.105797+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/f9a709fb-f379-4e03-9d88-aa127f88b9de", "rel": "self"}, {"href": "http://localhost/volume/connectors/f9a709fb-f379-4e03-9d88-aa127f88b9de", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_finished [0.027075s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors [0.089385s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_inspecting [0.026188s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_inspector [0.025550s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_volume_volume_connector_id_get_admin [0.067923s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/b219c46f-2c07-47e8-a256-29eed5cb5910 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-46ac23d1-a013-449d-b61b-daa50c3d7822
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "b219c46f-2c07-47e8-a256-29eed5cb5910", "created_at": "2025-05-29T16:58:00.152342+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/b219c46f-2c07-47e8-a256-29eed5cb5910", "rel": "self"}, {"href": "http://localhost/volume/connectors/b219c46f-2c07-47e8-a256-29eed5cb5910", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_clean_up_failed [0.035172s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue [0.083970s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error [0.027252s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_211_volume_volume_connector_id_get_member [0.068214s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/0e3f8199-735f-4d66-a6e4-f74cdaabe029 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e1f72f25-5013-4601-bd3d-6e9934abeb0c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0e3f8199-735f-4d66-a6e4-f74cdaabe029", "created_at": "2025-05-29T16:58:00.219737+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0e3f8199-735f-4d66-a6e4-f74cdaabe029", "rel": "self"}, {"href": "http://localhost/volume/connectors/0e3f8199-735f-4d66-a6e4-f74cdaabe029", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error_dont_store_inventory [0.027703s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok [0.030712s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait [0.083058s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_212_volume_volume_connector_id_get_reader [0.065872s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/92fdd9cd-b235-43f3-941d-76f5f2ca8b4f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b41730d4-d080-4b0f-ade4-96d3950dd0ab
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "92fdd9cd-b235-43f3-941d-76f5f2ca8b4f", "created_at": "2025-05-29T16:58:00.287915+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/92fdd9cd-b235-43f3-941d-76f5f2ca8b4f", "rel": "self"}, {"href": "http://localhost/volume/connectors/92fdd9cd-b235-43f3-941d-76f5f2ca8b4f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory [0.027305s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory_nostore [0.025654s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint [0.026551s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_213_volume_volume_connector_id_patch_admin [0.071858s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/ed4870ef-d072-4417-8c36-03717c0bcb34 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-56fed3d6-3c5a-4c29-b702-8812f2b49db7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_mdns [0.025194s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback [0.024191s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_override [0.025683s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_214_volume_volume_connector_id_patch_member [0.070970s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/9d30c876-8218-4b41-b988-b5815f987f17 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-7094dd7e-eb93-402c-98e0-8d77acaa6365
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_properties [0.026591s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_validate_ok [0.024727s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_215_volume_volume_connector_id_patch_reader [0.067262s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/35cba6e1-c4ff-4568-9af7-66570bf99293 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e7a00365-d561-41d8-a538-cc5e25772395
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_error [0.025749s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue [0.245738s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_ok [0.026033s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_216_volume_volume_connector_id_patch_service [0.073286s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/c95ea3c0-4cd6-4f92-997b-96397a736e18 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-2c8ad018-4bcf-4720-99f9-509fda395286
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_custom_params [0.058243s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state [0.086090s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_volume_volume_connector_id_delete_admin [0.063540s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/d2ec668d-1f82-4fad-a394-410e93add5bc GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-300f58da-c56f-4652-8fd6-588737449086
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_disable_power_off [0.047547s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_error [0.060852s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_volume_volume_connector_id_delete_member [0.064484s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/d104e56a-03f0-4ce7-9344-2ad902424785 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-24ee8498-b7ff-4387-bc25-a25541647872
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error [0.092311s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track [0.057843s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_volume_volume_connector_id_delete_reader [0.070583s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/6afccf06-6d57-400e-a7f4-9c62b1dd078a GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e77d5648-06bd-485e-b9f4-d6363ced2b9a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error [0.091170s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track_via_driver_info [0.058282s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue [0.068693s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_ok [0.059648s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay [1.031595s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_require_managed_boot [0.029459s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_error [0.036345s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state [0.092696s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_ok [0.041920s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_220_volume_volume_connector_id_delete_service [0.220214s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/8dcc2c7a-2888-45a5-a26c-6f1f5b4094e0 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-b9834997-c196-467d-aa0b-cb7844d53b28
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance [0.039998s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_ok [0.028712s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_volume_targets_get_admin [0.063161s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cb3bcf52-1e65-4790-b0d8-6d9c14f517ad
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "beac011c-e2e1-4d92-ac49-19bcf7e028ec", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/beac011c-e2e1-4d92-ac49-19bcf7e028ec", "rel": "self"}, {"href": "http://localhost/volume/targets/beac011c-e2e1-4d92-ac49-19bcf7e028ec", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail [0.064620s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_222_volume_targets_get_member [0.064001s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4af46ac2-9ddb-4b88-bae1-5225ebbc71fd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "86ca60e3-0d50-40b3-9060-60fdb5c9f157", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/86ca60e3-0d50-40b3-9060-60fdb5c9f157", "rel": "self"}, {"href": "http://localhost/volume/targets/86ca60e3-0d50-40b3-9060-60fdb5c9f157", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail [0.055580s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_223_volume_targets_get_reader [0.064094s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-415ee5d5-6d5c-46d7-9452-c847c903d36b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "35776b39-05f5-4dc5-b2ac-fbb1652030ee", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/35776b39-05f5-4dc5-b2ac-fbb1652030ee", "rel": "self"}, {"href": "http://localhost/volume/targets/35776b39-05f5-4dc5-b2ac-fbb1652030ee", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail [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.inspector.test_interface.InspectHardwareTestCase.test_validate_require_managed_boot [0.206156s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_224_volume_targets_get_service [0.062482s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8a717f68-0cde-4e8d-b3f1-047e3d08bfa6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "3b637f5d-5959-4c2a-abd7-330d09c92c1e", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/3b637f5d-5959-4c2a-abd7-330d09c92c1e", "rel": "self"}, {"href": "http://localhost/volume/targets/3b637f5d-5959-4c2a-abd7-330d09c92c1e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue [0.066443s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_default [0.057693s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_volume_targets_post_admin [0.073452s] ... 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/841ff8c7-2680-4962-bf67-1ad55c398877
Openstack-Request-Id: req-59f0d61f-b092-4202-85b9-cda3770f964d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "841ff8c7-2680-4962-bf67-1ad55c398877", "created_at": "2025-05-29T16:58:01.344873+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/841ff8c7-2680-4962-bf67-1ad55c398877", "rel": "self"}, {"href": "http://localhost/volume/targets/841ff8c7-2680-4962-bf67-1ad55c398877", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_ipmi [0.049486s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state [0.074745s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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_maintenance [0.039670s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.049825s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_226_volume_targets_post_member [0.070765s] ... 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/05d92fe5-e5dc-45c3-abea-3151b1ce514d
Openstack-Request-Id: req-cd61ae6d-f6fc-4aa5-a217-cdaee7ae813c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "05d92fe5-e5dc-45c3-abea-3151b1ce514d", "created_at": "2025-05-29T16:58:01.416036+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/05d92fe5-e5dc-45c3-abea-3151b1ce514d", "rel": "self"}, {"href": "http://localhost/volume/targets/05d92fe5-e5dc-45c3-abea-3151b1ce514d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties [0.031686s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail [0.039848s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.038138s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_volume_targets_post_service [0.069795s] ... 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/c84596de-b087-4dd1-b9c1-5b9006294a74
Openstack-Request-Id: req-9d77322f-60dd-4071-9f77-553e10900a19
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "c84596de-b087-4dd1-b9c1-5b9006294a74", "created_at": "2025-05-29T16:58:01.486436+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/c84596de-b087-4dd1-b9c1-5b9006294a74", "rel": "self"}, {"href": "http://localhost/volume/targets/c84596de-b087-4dd1-b9c1-5b9006294a74", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout [0.038748s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_provision_rescue_abort [0.085495s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot [0.039339s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_228_volume_targets_post_service_project [0.071183s] ... 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/e859325e-ae23-4c69-9c2b-9ffc2309275a
Openstack-Request-Id: req-60033d32-d3e4-46d4-a346-abf94a8e26fd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e859325e-ae23-4c69-9c2b-9ffc2309275a", "created_at": "2025-05-29T16:58:01.557731+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/e859325e-ae23-4c69-9c2b-9ffc2309275a", "rel": "self"}, {"href": "http://localhost/volume/targets/e859325e-ae23-4c69-9c2b-9ffc2309275a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout [0.039395s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.088069s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state [0.037291s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_229_volume_targets_post_service_project_disabled [0.068482s] ... 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-efe9a0d7-d215-42a5-8e92-3162c3806874
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout [0.037590s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.085494s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_volume_targets_post_service_project_admin [0.068283s] ... 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-a404f769-747e-45aa-8bdc-1236eb62c10f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_default [0.033167s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail_ipmi [0.032903s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_volume_targets_post_reader [0.070846s] ... 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-aa49b43d-51a2-42fd-a7bb-15f84e0ed9b4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail_redfish [0.037371s] ... ok
{2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_newer_version [0.084720s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_ipmi [0.037818s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_232_volume_volume_target_id_get_admin [0.069158s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/4ff40cc5-be78-4270-9fd0-6ede71c69930 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d82e4cc1-e7bf-49d1-9061-79752ca59443
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "4ff40cc5-be78-4270-9fd0-6ede71c69930", "created_at": "2025-05-29T16:58:01.813302+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/4ff40cc5-be78-4270-9fd0-6ede71c69930", "rel": "self"}, {"href": "http://localhost/volume/targets/4ff40cc5-be78-4270-9fd0-6ede71c69930", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_redfish [0.037280s] ... ok
{2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_tls_required [0.087205s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id [0.048312s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_volume_volume_target_id_get_member [0.069246s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/43805dd0-5fc2-4096-9d50-47f2a7356a35 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d094ff4e-da46-4782-ba25-cbf0a21daf68
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "43805dd0-5fc2-4096-9d50-47f2a7356a35", "created_at": "2025-05-29T16:58:01.882372+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/43805dd0-5fc2-4096-9d50-47f2a7356a35", "rel": "self"}, {"href": "http://localhost/volume/targets/43805dd0-5fc2-4096-9d50-47f2a7356a35", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup [0.055904s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.088006s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_234_volume_volume_target_id_get_reader [0.069926s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/833aaf7d-0117-4c21-81bd-39f463329e48 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4d40a5c8-4217-434f-a23e-a64016997687
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "833aaf7d-0117-4c21-81bd-39f463329e48", "created_at": "2025-05-29T16:58:01.953373+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/833aaf7d-0117-4c21-81bd-39f463329e48", "rel": "self"}, {"href": "http://localhost/volume/targets/833aaf7d-0117-4c21-81bd-39f463329e48", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise [0.047635s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_verify_ca [0.084542s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports [0.049507s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_235_volume_volume_target_id_get_service [0.070510s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/906dfa48-8789-4083-8543-28c114f58995 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-51c224c3-cd1e-4101-8cc7-da7c310af101
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "906dfa48-8789-4083-8543-28c114f58995", "created_at": "2025-05-29T16:58:02.024777+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/906dfa48-8789-4083-8543-28c114f58995", "rel": "self"}, {"href": "http://localhost/volume/targets/906dfa48-8789-4083-8543-28c114f58995", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup [0.053335s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_version [0.084175s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_236_volume_volume_target_id_patch_admin_extra [0.076641s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/40bda3f5-da38-48b9-ab26-f100c12535f4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-6134875d-644a-48e6-9a28-9c0cbf8b415a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network [0.050707s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_237_volume_volume_target_id_patch_admin [0.077244s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/adfaa7cf-0e6e-4de9-b55c-f0be4b1975c6 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-89b75c2c-6dbe-4ba0-9ac2-fadf23372636
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_no_required_agent_token [0.080740s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node [0.074929s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_238_volume_volume_target_id_patch_reader [0.068802s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/3eac83cf-ec4c-467b-96eb-aaaa84b64b49 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-22dbe9d7-b35e-4c7c-a5e0-c0062d83f072
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network [0.050779s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_required_agent_token [0.084724s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_volume_volume_target_id_patch_service_disabled [0.076855s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/5c8d6f55-402a-49bb-b9e5-4238b0b78db8 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-50cf6b19-5a4c-4d57-9da2-c03c82145f93
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network_from_node [0.072825s] ... ok
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_without_agent_version_anaconda [0.082865s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network [0.041709s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_240_volume_volume_target_id_patch_service [0.076754s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/43f4d930-fcfc-426b-977d-bd76d78b23ec WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-f9d5534b-95bd-4a1c-ad1f-3012ef960460
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network [0.041236s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_without_version [0.082279s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.network.test_flat.TestFlatInterface.test_get_node_network_data [0.045305s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_241_volume_volume_target_id_delete_admin [0.069652s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/5bebae91-f357-443a-b5b8-55d93236d78e GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-df4b8b3a-8901-4bd2-b65c-75487e7d6885
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network [0.033391s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_242_volume_volume_target_id_delete_member [0.066636s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/d6b8a58c-f9ac-4852-8950-fa2729f12f24 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-b7c54cc0-308f-48fa-92e6-b55c962178b5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network [0.052141s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node [0.057752s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_243_volume_volume_target_id_delete_reader [0.064844s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/6e112572-0604-41f6-99bb-46f6ecdb8ecb GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-05094310-ad65-4f8f-8556-bfcc643e0fd7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network [0.042589s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_volume_volume_target_id_delete_service [0.066552s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/2aafffe4-4083-4cd2-9f14-dfd5e169b386 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-2af2dd50-ee0c-4c64-abba-c326becf6b90
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network [0.044125s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_from_all_nodes_one_pass [0.260951s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_245_nodes_volume_get_admin [0.059276s] ... 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-41912472-3814-4a2d-9f15-bcca08281921
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate [0.043626s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config [0.089017s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node [0.049166s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_246_nodes_volume_get_member [0.061636s] ... 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-29f00e12-e361-4891-9f11-992ef31a9208
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection [0.049170s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_nodes_volume_get_reader [0.061401s] ... 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-1ca089a5-1a42-4635-b353-d386f7d904c6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection_exc [0.042108s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_two_pass [0.099023s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach [0.041774s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_248_nodes_volume_connectors_get_admin [0.069961s] ... 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-ec2e35b1-1e61-4725-a3fc-20e9284c17f3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "49c3efdf-db11-4ebf-9900-41a21476652f", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/49c3efdf-db11-4ebf-9900-41a21476652f", "rel": "self"}, {"href": "http://localhost/volume/connectors/49c3efdf-db11-4ebf-9900-41a21476652f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach [0.040882s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_with_days [0.094442s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_249_nodes_volume_connectors_get_member [0.071467s] ... 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-f0e97c39-169d-4771-b313-576a24725fe0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "20947b6e-fbc7-40bd-bc9d-06b418cd9cef", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/20947b6e-fbc7-40bd-bc9d-06b418cd9cef", "rel": "self"}, {"href": "http://localhost/volume/connectors/20947b6e-fbc7-40bd-bc9d-06b418cd9cef", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list [0.041425s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed [0.041061s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work [0.074093s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_250_nodes_volume_connectors_get_reader [0.070764s] ... 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-4dd5c425-d9ff-433a-9f00-36bb9ef49c6d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"connectors": [{"uuid": "2776f537-54f9-44cf-afb5-85068af1ad7c", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2776f537-54f9-44cf-afb5-85068af1ad7c", "rel": "self"}, {"href": "http://localhost/volume/connectors/2776f537-54f9-44cf-afb5-85068af1ad7c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network [0.039382s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_noop.NoopInterfaceTestCase.test_add_inspection_network [0.041115s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeHistoryRecordCleanupTestCase.test_history_pruning_not_other_conductor [0.079416s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_251_nodes_volume_targets_get_admin [0.073628s] ... 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-87fe67cf-df1d-493f-b43f-97befcf23bea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "92a01896-1eb8-4eae-b0d5-63fcbf2cfacf", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/92a01896-1eb8-4eae-b0d5-63fcbf2cfacf", "rel": "self"}, {"href": "http://localhost/volume/targets/92a01896-1eb8-4eae-b0d5-63fcbf2cfacf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network [0.039729s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_noop.NoopInterfaceTestCase.test_configure_tenant_networks [0.040824s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_252_nodes_volume_targets_get_member [0.074364s] ... 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-3188b02b-1636-420c-861c-113d003cacc9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "7ad1cc67-55e6-460e-89de-df141cb6bd5b", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/7ad1cc67-55e6-460e-89de-df141cb6bd5b", "rel": "self"}, {"href": "http://localhost/volume/targets/7ad1cc67-55e6-460e-89de-df141cb6bd5b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts [0.093529s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif [0.039806s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeInspectHardware.test_inspect_hardware_power_validate_fail [0.049804s] ... ok
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_noop.NoopInterfaceTestCase.test_get_node_network_data [0.040098s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties [0.027662s] ... ok
{2} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail [0.052571s] ... ok
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.NodeInspectHardware.test_inspect_hardware_worker_pool_full [0.092367s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_253_nodes_volume_targets_get_reader [0.230670s] ... 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-bf6f5a7f-8336-46ae-ab22-3c123772b39f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"targets": [{"uuid": "7003f032-749d-4b4c-b775-ada0baa75857", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/7003f032-749d-4b4c-b775-ada0baa75857", "rel": "self"}, {"href": "http://localhost/volume/targets/7003f032-749d-4b4c-b775-ada0baa75857", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits [0.063896s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_254_drivers_get_admin [0.061258s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e03976c4-877a-46c3-a8b0-9e6f1ea2c29e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"drivers": []}
{0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed [0.197621s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value [0.043766s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_noop.NoopInterfaceTestCase.test_portgroup_changed [0.044800s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_drivers_get_member [0.060791s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-535bc009-0513-4111-86d6-a6191b2329e6
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"drivers": []}
{2} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked [0.043085s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_noop.NoopInterfaceTestCase.test_remove_cleaning_network [0.040396s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeTraitsTestCase.test_add_node_traits_node_not_found [0.043833s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_256_drivers_get_reader [0.063526s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c36b0e02-8c11-4008-8a8b-b1581f21300f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"drivers": []}
{0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_inspection_network [0.041146s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_noop.NoopInterfaceTestCase.test_remove_provisioning_network [0.039839s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeTraitsTestCase.test_add_node_traits_replace [0.064526s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_257_drivers_driver_name_get_admin [0.062154s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d89b96b9-2eb4-4b17-90c8-3a88118f5811
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks [0.040855s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeTraitsTestCase.test_remove_node_traits [0.065064s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_258_drivers_driver_name_get_member [0.060643s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-04edcbd3-27e4-495e-8feb-eb1076c8c2b4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate [0.039957s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeTraitsTestCase.test_remove_node_traits_all [0.045621s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_noop.NoopInterfaceTestCase.test_vif_attach [0.039533s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_259_drivers_driver_name_get_reader [0.061481s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-37f29f02-dc41-41ed-b9b4-7f0391fe2629
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty [0.044304s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_noop.NoopInterfaceTestCase.test_vif_detach [0.039472s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_noop.NoopInterfaceTestCase.test_vif_list [0.039410s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeTraitsTestCase.test_remove_node_traits_node_locked [0.045284s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_260_drivers_properties_get_admin [0.074486s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-75ca40de-9f30-46d5-acb2-f2b3c42b20d7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device [0.025513s] ... ok
{2} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found [0.044751s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device_inserted [0.025131s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_261_drivers_properties_get_member [0.060539s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-14e713b2-67ba-4e3d-9fd5-9abff0fb9431
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted [0.032084s] ... ok
{2} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found [0.044705s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew [0.032708s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_262_drivers_properties_get_reader [0.060804s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-9ea60eae-9b0a-453d-b6b8-2468a6d3043c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd [0.034133s] ... ok
{2} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties [0.066477s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported [0.025009s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd_retry [0.037259s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_263_drivers_raid_logical_disk_properties_get_admin [0.062914s] ... 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-17a73749-16b8-4d77-92be-fba1595bb5aa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device [0.034779s] ... ok
{2} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config [0.048765s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_empty_media_type [0.035155s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_264_drivers_raid_logical_disk_properties_get_member [0.062391s] ... 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-effeb903-1c51-4391-8aef-f750478a5f44
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty [0.051880s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_while_ejecting [0.037390s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_265_drivers_raid_logical_disk_properties_get_reader [0.062454s] ... 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-f16915bc-7eec-4d8c-9088-b540831949aa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_compatible_with_idrac [0.031356s] ... ok
{2} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported [0.042286s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_incompatible_with_idrac [0.032049s] ... ok
{2} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value [0.050745s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_266_drivers_vendor_passthru_methods_get_admin [0.062806s] ... 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-50bed179-f407-4652-ba0a-a0e89fbb5681
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.040765s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom [0.034009s] ... ok
{2} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties [0.065512s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_267_drivers_vendor_passthru_methods_get_member [0.064258s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-20833d1c-6da5-4e13-bab8-a3c2de294236
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk [0.034799s] ... ok
{2} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config [0.048560s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk [0.033890s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_268_drivers_vendor_passthru_methods_get_reader [0.063177s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4cdd02b9-8426-4f96-bb11-7b75d900c8e3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_everything [0.038630s] ... ok
{2} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty [0.049724s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_269_drivers_vendor_passthru_get_admin [0.064257s] ... 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-a675b615-9780-4141-a063-0efc8d26913a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted [0.038455s] ... ok
{2} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value [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(
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_specific [0.038148s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_270_drivers_vendor_passthru_get_member [0.059296s] ... 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-a80e1c64-7d0a-474a-b3be-ef51c1e7153e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown [0.036421s] ... ok
{2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data [0.065337s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.041738s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_271_drivers_vendor_passthru_get_reader [0.059474s] ... 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-bf38f323-1b55-4bcc-bd8e-7d042e94bf84
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info [0.031442s] ... ok
{2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_disabled [0.071367s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc [0.030825s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_272_drivers_vendor_passthru_post_admin [0.063993s] ... 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-0ecd6f78-2403-4a8b-be72-bbd1ee5bd24a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.032954s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.032482s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_273_drivers_vendor_passthru_post_member [0.061537s] ... 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-08a0d52b-9cea-4140-852d-e6766a2ba0ea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.031775s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_274_drivers_vendor_passthru_post_reader [0.062704s] ... 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-a53746dc-49e3-4cba-a809-2f3e4ffaf83b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.031829s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.033407s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_275_drivers_vendor_passthru_put_admin [0.062338s] ... 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-509473d8-9222-407b-9b9a-80a1d5317505
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.031566s] ... ok
{2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers [0.228387s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy [0.031700s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_276_drivers_vendor_passthru_put_member [0.063485s] ... 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-a8ad24bd-c7fa-4e81-9b3b-f29ed1783c20
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc [0.031478s] ... ok
{2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_one_worker [0.060105s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy [0.031487s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_277_drivers_vendor_passthru_put_reader [0.062190s] ... 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-3ae11bf7-3fb3-45ae-af58-0593078ded69
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.032097s] ... ok
{2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all [0.063700s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue [0.031159s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_278_drivers_vendor_passthru_delete_admin [0.066721s] ... 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-8acdce0f-11d2-40d3-8f54-fef4f9d2e0ea
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.031199s] ... ok
{2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non [0.063573s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso [0.031534s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_279_drivers_vendor_passthru_delete_member [0.059283s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9d70d639-1ad5-43d5-b27c-4b90a167b757
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso_deprecated [0.032064s] ... ok
{2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part [0.064377s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy [0.031935s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_280_drivers_vendor_passthru_delete_reader [0.058940s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-5f329dbc-0751-47de-b315-651d359d5dd7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.032440s] ... ok
{2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__sensors_conductor [0.067833s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue [0.033053s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_281_nodes_bios_get_admin [0.066895s] ... 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-0284f9fb-c397-48c8-8e39-60e1b4dcc08a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"bios": [{"created_at": "2025-05-29T16:58:05.223759+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.033395s] ... ok
{2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task [0.075912s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_nodes_bios_get_member [0.067034s] ... 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-e3593078-35f7-4941-8582-e8a45cca5095
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"bios": [{"created_at": "2025-05-29T16:58:05.290904+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance [0.067225s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_283_nodes_bios_get_reader [0.067578s] ... 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-12fdcd97-6c1f-4241-92cc-8c08f8706cb8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"bios": [{"created_at": "2025-05-29T16:58:05.359560+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management [0.067149s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk [0.196879s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_284_nodes_bios_bios_setting_get_admin [0.078260s] ... 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-45809edc-f100-438d-9ab4-d85f8f1762e4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"FAKE_SETTING": {"created_at": "2025-05-29T16:58:05.430469+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable [0.032806s] ... ok
{2} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown [0.068346s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable_deprecated [0.048238s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_285_nodes_bios_bios_setting_get_member [0.075460s] ... 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-cfca0d7f-de63-4118-bb4d-12f62621a381
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"FAKE_SETTING": {"created_at": "2025-05-29T16:58:05.509902+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}}
{2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async [0.059395s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue [0.039042s] ... ok
{2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found [0.052138s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option [0.065130s] ... ok
{2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported [0.049179s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported [0.046048s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image [0.064059s] ... ok
{2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface [0.047866s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_286_nodes_bios_bios_setting_get_reader [0.232818s] ... 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-7fdf9b8e-4f6f-4cc9-b920-5f2dd9d46ce0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"FAKE_SETTING": {"created_at": "2025-05-29T16:58:05.584814+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot [0.079606s] ... ok
{2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync [0.050315s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed [0.044565s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_287_conductors_get_admin [0.063869s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-32359fc1-cb2c-4d32-94ff-76d066895498
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot [0.061006s] ... ok
{2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods [0.048844s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_288_conductors_get_member [0.062730s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2efa31b6-0af5-401c-8c79-d34e34828299
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.058235s] ... ok
{2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface [0.047371s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_289_conductors_get_reader [0.063896s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ed47167a-c349-4fe0-9005-eed7e058c93c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.060677s] ... ok
{2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods [0.071232s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.058613s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_290_conductors_hostname_get_admin [0.061708s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a3001626-e2df-4052-a2ea-9a1a4dd4739c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:58:06.001180+00:00", "updated_at": "2025-05-29T16:58:06.001795+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track [0.044936s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.VendorPassthruTestCase.test_vendor_passthru_async [0.075637s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_291_conductors_hostname_get_member [0.062645s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2bc5ddd0-e5b9-4584-874e-1528779d19f0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:58:06.064440+00:00", "updated_at": "2025-05-29T16:58:06.065046+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track_impossible [0.053681s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported [0.071097s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_292_conductors_hostname_get_reader [0.062933s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-75dd7a74-a6bd-4c83-8c97-647bba8281ac
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"created_at": "2025-05-29T16:58:06.128255+00:00", "updated_at": "2025-05-29T16:58:06.128882+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_config [0.047185s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_debug [0.046652s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_293_allocations_post_admin [0.069494s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-e281909d-3c8e-4e67-b252-b6d4bbee3a51
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters [0.078301s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy [0.052203s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_294_allocations_post_member [0.067979s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-e16213f9-2057-4d37-95d1-22e9d556da35
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked [0.078048s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params [0.050357s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_295_allocations_post_reader [0.066068s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-10cb9d7b-c6eb-4c97-a7a1-341d4da7222b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_usb [0.051490s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.VendorPassthruTestCase.test_vendor_passthru_shared_lock [0.078894s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_boot_iso [0.032692s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_296_allocations_get_admin [0.068090s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2cf8a6e0-fd74-46e3-aeda-8a1b30b8185c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "aed7a8e0-bf8f-4590-ac31-3f52e5f13d9a", "created_at": "2025-05-29T16:58:06.385538+00:00", "updated_at": "2025-05-29T16:58:06.389359+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/aed7a8e0-bf8f-4590-ac31-3f52e5f13d9a", "rel": "self"}, {"href": "http://localhost/allocations/aed7a8e0-bf8f-4590-ac31-3f52e5f13d9a", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_correct_vendor [0.036726s] ... ok
{2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync [0.076718s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection [0.032351s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_297_allocations_get_member [0.064781s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cd05d9a8-f365-4d1f-8110-cb0d80412d10
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "84f97674-dbf1-45d1-9c3b-1d85dd260afe", "created_at": "2025-05-29T16:58:06.452614+00:00", "updated_at": "2025-05-29T16:58:06.456524+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/84f97674-dbf1-45d1-9c3b-1d85dd260afe", "rel": "self"}, {"href": "http://localhost/allocations/84f97674-dbf1-45d1-9c3b-1d85dd260afe", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection_missing [0.031433s] ... ok
{2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method [0.073196s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_298_allocations_get_reader [0.064926s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-927bd7e8-6e68-4662-98a0-ef5c1e8e21c3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"allocations": [{"uuid": "6c6b4ec6-8f30-4cba-bd19-69ed2c236bd4", "created_at": "2025-05-29T16:58:06.518146+00:00", "updated_at": "2025-05-29T16:58:06.521950+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/6c6b4ec6-8f30-4cba-bd19-69ed2c236bd4", "rel": "self"}, {"href": "http://localhost/allocations/6c6b4ec6-8f30-4cba-bd19-69ed2c236bd4", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_299_allocations_allocation_id_get_admin [0.063959s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/ff82e555-3b45-4932-baeb-696dd983fffa WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-27cd4881-646f-4175-8b0e-a8e4a0e625bc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "ff82e555-3b45-4932-baeb-696dd983fffa", "created_at": "2025-05-29T16:58:06.584112+00:00", "updated_at": "2025-05-29T16:58:06.588145+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/ff82e555-3b45-4932-baeb-696dd983fffa", "rel": "self"}, {"href": "http://localhost/allocations/ff82e555-3b45-4932-baeb-696dd983fffa", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full [0.082151s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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_servicing.DoNodeServiceTestCase.test__do_next_clean_step_automated_execute_fail [0.064855s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_300_allocations_allocation_id_get_member [0.066234s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/cf469a97-9534-43f7-8611-0b806cab726b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5c32a6d4-966d-4f94-8489-3971ee3bc669
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "cf469a97-9534-43f7-8611-0b806cab726b", "created_at": "2025-05-29T16:58:06.649964+00:00", "updated_at": "2025-05-29T16:58:06.653959+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/cf469a97-9534-43f7-8611-0b806cab726b", "rel": "self"}, {"href": "http://localhost/allocations/cf469a97-9534-43f7-8611-0b806cab726b", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_kernel_ramdisk [0.213292s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_301_allocations_allocation_id_get_reader [0.063818s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/965d2ca3-e489-4a66-8399-4981d62e2a89 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f2e7bb3e-ee0c-45ee-bf7b-db609439318e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "965d2ca3-e489-4a66-8399-4981d62e2a89", "created_at": "2025-05-29T16:58:06.715635+00:00", "updated_at": "2025-05-29T16:58:06.719487+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/965d2ca3-e489-4a66-8399-4981d62e2a89", "rel": "self"}, {"href": "http://localhost/allocations/965d2ca3-e489-4a66-8399-4981d62e2a89", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local [0.031239s] ... ok
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_fail_in_tear_down_service [0.083780s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing [0.031557s] ... ok
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_last_step_noop [0.055815s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done [0.042912s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_302_allocations_allocation_id_patch_admin [0.075685s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/d74dd840-86c7-4418-82b0-c499c434f54b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e5568377-498b-40f5-8574-57dbac9bba5a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d74dd840-86c7-4418-82b0-c499c434f54b", "created_at": "2025-05-29T16:58:06.780857+00:00", "updated_at": "2025-05-29T16:58:06.821519+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/d74dd840-86c7-4418-82b0-c499c434f54b", "rel": "self"}, {"href": "http://localhost/allocations/d74dd840-86c7-4418-82b0-c499c434f54b", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_fail [0.048057s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_303_allocations_allocation_id_patch_member [0.075033s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/cbd6b14a-7318-44b6-812a-0702d2467ea3 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8809c383-473a-476d-b18d-34221154f77d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "cbd6b14a-7318-44b6-812a-0702d2467ea3", "created_at": "2025-05-29T16:58:06.856287+00:00", "updated_at": "2025-05-29T16:58:06.897153+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/cbd6b14a-7318-44b6-812a-0702d2467ea3", "rel": "self"}, {"href": "http://localhost/allocations/cbd6b14a-7318-44b6-812a-0702d2467ea3", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_no_steps [0.081049s] ... ok
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_management.RedfishManagementTestCase.test__check_node_firmware_update_in_progress [0.043505s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_redfish_conn_error [0.045061s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_304_allocations_allocation_id_patch_reader [0.064706s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/004cd1f6-0ea9-42b5-833e-45c03e2df40d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d4a4f2fc-83b4-4391-8382-c9a7d4ad32e7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_bad_step_return_value [0.062671s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_still_waiting [0.043832s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_manual_last_step_noop [0.056793s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_305_allocations_allocation_id_delete_admin [0.065887s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/839a108b-76d7-4fc6-8ae3-4c564130eac9 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-9d31fb0a-80e9-4867-b37c-971ad8c5d100
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found [0.043732s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service [0.055191s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_wait_elapsed [0.043385s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_306_allocations_allocation_id_delete_member [0.063568s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/ece81c6c-b55f-4027-b760-1bc17110eb62 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-e7700ad6-71ff-4083-a379-0c94ae59e82a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_automated_network_validate_fail [0.056770s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_last_update [0.047824s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_307_allocations_allocation_id_delete_reader [0.060704s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/d241c0ec-e122-466c-b191-635bf46c97a3 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b7c9a409-dc97-4cfb-bbbd-d483c2c9b628
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_more_updates [0.038565s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_automated_power_validate_fail [0.057044s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_wait [0.041963s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_308_nodes_allocation_get_admin [0.068627s] ... 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-8a8de24f-943a-46dd-982d-6a6de2d24e85
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "423beabb-ec91-48e6-9e19-98e614330e86", "created_at": "2025-05-29T16:58:07.188634+00:00", "updated_at": "2025-05-29T16:58:07.192954+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/423beabb-ec91-48e6-9e19-98e614330e86", "rel": "self"}, {"href": "http://localhost/allocations/423beabb-ec91-48e6-9e19-98e614330e86", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_disable_ramdisk [0.055272s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_simple_storage [0.033432s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_storage [0.032598s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_309_nodes_allocation_get_member [0.068407s] ... 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-597698fb-2c23-4e3b-bd97-6d219510fda3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "cba41d2c-63c9-4aaf-b2c6-9e642debb655", "created_at": "2025-05-29T16:58:07.257925+00:00", "updated_at": "2025-05-29T16:58:07.262447+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/cba41d2c-63c9-4aaf-b2c6-9e642debb655", "rel": "self"}, {"href": "http://localhost/allocations/cba41d2c-63c9-4aaf-b2c6-9e642debb655", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_network_validate_fail [0.053982s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan [0.030736s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power [0.031895s] ... ok
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_power_validate_fail [0.054591s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_310_nodes_allocation_get_reader [0.068771s] ... 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-acb274ea-9d16-4840-9480-04d53455d693
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "042063b9-c70c-4339-950f-96e109f0d49e", "created_at": "2025-05-29T16:58:07.326744+00:00", "updated_at": "2025-05-29T16:58:07.330989+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/042063b9-c70c-4339-950f-96e109f0d49e", "rel": "self"}, {"href": "http://localhost/allocations/042063b9-c70c-4339-950f-96e109f0d49e", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures [0.030862s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed [0.030293s] ... ok
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_network_error_fail [0.054261s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_311_nodes_allocation_delete_admin [0.066818s] ... 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-b68ae510-f6b5-4ff6-a90d-ea2fc49ebf38
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed_no_firmware_upd [0.032092s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status [0.031070s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_312_nodes_allocation_delete_member [0.064737s] ... 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-09f54148-e34d-4eac-91fc-af81f04c452b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_active [0.080160s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status_no_firmware_upd [0.030463s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_error [0.026514s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_https [0.025065s] ... ok
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_fail [0.064954s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_313_nodes_allocation_delete_reader [0.065358s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b7972496-ce2c-4e6e-b589-b324391a3cfa
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_swift [0.024787s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_attach_virtual_media [0.036920s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_314_deploy_templates_post_admin [0.073206s] ... 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/cb2d9552-4744-47fc-8770-b9ca642c5a39
Openstack-Request-Id: req-f2c3d95e-b3b6-4cf1-a19c-f8b5bc57073e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "cb2d9552-4744-47fc-8770-b9ca642c5a39", "created_at": "2025-05-29T16:58:07.636027+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/cb2d9552-4744-47fc-8770-b9ca642c5a39", "rel": "self"}, {"href": "http://localhost/deploy_templates/cb2d9552-4744-47fc-8770-b9ca642c5a39", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot [0.033389s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot_not_implemented [0.031742s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_315_deploy_templates_post_member [0.066207s] ... 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-6416af38-35a9-415c-854a-77bf7b30eb86
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media [0.038101s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_316_deploy_templates_post_reader [0.066131s] ... 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-e5dca424-be11-4ec8-8f2c-124d994dcb2a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media_all [0.039631s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_wait [0.220778s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor [0.033283s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_317_deploy_templates_get_admin [0.064798s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-99236a14-d1df-49e2-a4e3-38a0d250c863
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "d204b197-53bf-40f8-9d86-3335a8866196", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/d204b197-53bf-40f8-9d86-3335a8866196", "rel": "self"}, {"href": "http://localhost/deploy_templates/d204b197-53bf-40f8-9d86-3335a8866196", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device [0.032492s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode [0.032681s] ... ok
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_steps_fail [0.091340s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_318_deploy_templates_get_member [0.061334s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6faf1417-f823-4c91-9574-2cce4e301400
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "86686e1a-7c7d-423d-bb90-c59e90c5eda4", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/86686e1a-7c7d-423d-bb90-c59e90c5eda4", "rel": "self"}, {"href": "http://localhost/deploy_templates/86686e1a-7c7d-423d-bb90-c59e90c5eda4", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state [0.037811s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service [0.039265s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state_disk [0.038971s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service_no_skip_step [0.039380s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_319_deploy_templates_get_reader [0.061613s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ac214fde-b52a-46fc-8356-361f2fa707cd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"deploy_templates": [{"uuid": "c0f84a41-02c4-4928-970c-a09d4d7f0446", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/c0f84a41-02c4-4928-970c-a09d4d7f0446", "rel": "self"}, {"href": "http://localhost/deploy_templates/c0f84a41-02c4-4928-970c-a09d4d7f0446", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_missing_attr [0.035533s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found [0.034988s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_320_deploy_templates_deploy_template_id_get_admin [0.067778s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/ac10b418-5071-4941-8453-0424ddecb460 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6d5439fd-5fd0-44e5-9025-c07a247bf55f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "ac10b418-5071-4941-8453-0424ddecb460", "created_at": "2025-05-29T16:58:08.004918+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ac10b418-5071-4941-8453-0424ddecb460", "rel": "self"}, {"href": "http://localhost/deploy_templates/ac10b418-5071-4941-8453-0424ddecb460", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all [0.076999s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_success [0.033030s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties [0.031395s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_321_deploy_templates_deploy_template_id_get_member [0.062772s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/b7b53f88-fb81-4270-9baa-b2ee77a17400 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-35403460-51fc-4ea5-8a32-4adc6cf73515
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "b7b53f88-fb81-4270-9baa-b2ee77a17400", "created_at": "2025-05-29T16:58:08.069058+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b7b53f88-fb81-4270-9baa-b2ee77a17400", "rel": "self"}, {"href": "http://localhost/deploy_templates/b7b53f88-fb81-4270-9baa-b2ee77a17400", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state [0.031386s] ... ok
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all_disable_ramdisk [0.081580s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state_not_implemented [0.031893s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data [0.034723s] ... ok
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_collect_logs [0.077085s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices [0.029898s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes [0.030449s] ... ok
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.052701s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_indicators [0.031878s] ... ok
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.051528s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_322_deploy_templates_deploy_template_id_get_reader [0.215346s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/e56bd635-387b-4e30-b112-4cb4afbb36de WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4a9ac4ca-e74d-4b07-89a0-28f1a13f864b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e56bd635-387b-4e30-b112-4cb4afbb36de", "created_at": "2025-05-29T16:58:08.285259+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e56bd635-387b-4e30-b112-4cb4afbb36de", "rel": "self"}, {"href": "http://localhost/deploy_templates/e56bd635-387b-4e30-b112-4cb4afbb36de", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_virtual_media [0.037630s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi [0.037610s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_agent_busy [0.052399s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_323_deploy_templates_deploy_template_id_patch_admin [0.081281s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/ff16b574-9621-409a-8310-53e1db15d540 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-58e89a35-09d8-4f92-b437-c74ee0c5c828
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "ff16b574-9621-409a-8310-53e1db15d540", "created_at": "2025-05-29T16:58:08.346492+00:00", "updated_at": "2025-05-29T16:58:08.385925+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ff16b574-9621-409a-8310-53e1db15d540", "rel": "self"}, {"href": "http://localhost/deploy_templates/ff16b574-9621-409a-8310-53e1db15d540", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_automated_first_step_async [0.049992s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail [0.059553s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default [0.032739s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_324_deploy_templates_deploy_template_id_patch_member [0.062761s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/9563cece-78d2-44bd-8a98-16295cf70072 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-fc1fe619-faf9-45dd-90e8-2366de596c8d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_active [0.051656s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented [0.032634s] ... ok
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_wait [0.050568s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_325_deploy_templates_deploy_template_id_patch_reader [0.062451s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/b9d83a87-d556-45c9-ba91-ea0ed3f1ed86 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-976e691a-ef2b-43da-b496-ec57d1efdbfe
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device [0.039400s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_compat [0.037827s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_manual_first_step_async [0.052996s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_326_deploy_templates_deploy_template_id_delete_admin [0.063169s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/ea77173c-3fbe-4bc6-89e7-de6b7dea4e06 GOT Response: 204 No Content
Openstack-Request-Id: req-5ec761df-b364-48b0-9fc8-57d35b9e63c4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot [0.050909s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_327_deploy_templates_deploy_template_id_delete_member [0.059161s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/57606c50-6f41-40ec-b4de-b9bd6fa92f80 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-08ba7fcb-8a59-475d-88bc-db6c94a69fe1
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_fail [0.058348s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_328_deploy_templates_deploy_template_id_delete_reader [0.059197s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/58c1836c-6f60-4f0b-b1fe-0e0104715ad4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7ee53e0a-3769-4f76-92e5-e8ca32292e00
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_last_step [0.051371s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_failure [0.204149s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_329_chassis_post_admin [0.062247s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/chassis/d09b1b7d-3ded-49cb-bcfb-e2b4b27b6351
Openstack-Request-Id: req-039b6b3d-0dbb-4a78-909c-b581bb71e7ff
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d09b1b7d-3ded-49cb-bcfb-e2b4b27b6351", "created_at": "2025-05-29T16:58:08.760255+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/d09b1b7d-3ded-49cb-bcfb-e2b4b27b6351", "rel": "self"}, {"href": "http://localhost/chassis/d09b1b7d-3ded-49cb-bcfb-e2b4b27b6351", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/d09b1b7d-3ded-49cb-bcfb-e2b4b27b6351/nodes", "rel": "self"}, {"href": "http://localhost/chassis/d09b1b7d-3ded-49cb-bcfb-e2b4b27b6351/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_node_service_steps_fail_poweroff [0.058535s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_noop [0.038106s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure [0.040260s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_330_chassis_post_member [0.063338s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-223542e9-f4cc-44d0-84c5-c3b47d369b4a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value [0.039631s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device [0.063849s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_331_chassis_post_reader [0.064500s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f7ae62b2-9d97-4137-b9aa-8eb01e793dd4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok [0.039830s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail [0.070027s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetValidatedStepsFromTemplatesTestCase.test_skip_missing [0.041261s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_332_chassis_get_admin [0.063206s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d9bcf1c1-d84f-45f5-9887-a8eb02ccfd5d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail_no_change [0.049351s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ReservedStepHandlerByNameTestCase.test_reserved_step_wait [0.044139s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_333_chassis_get_member [0.062351s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2d4cc455-d440-4b0f-819b-958da54f3703
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_http_boot [0.052350s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time [0.050947s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_334_chassis_get_reader [0.063384s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-71589931-b665-4fff-9a7e-e5cecfc046e0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time_to_long [0.050456s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistence_fallback [0.088768s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_335_chassis_get_service [0.060243s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-93069d32-f484-48b3-a67e-05c476b35272
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_off [0.052773s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency [0.053155s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.048728s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_336_chassis_detail_get_admin [0.060772s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-09848f34-d85e-44e0-a455-c03790425564
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:58:09.179754+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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_no_change [0.051310s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.050764s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_337_chassis_detail_get_member [0.061446s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-142b551b-4cb3-4083-b86b-5f2ce08dbc0f
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:58:09.241207+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{2} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template [0.040358s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_vendor [0.074263s] ... ok
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_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps [0.041281s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_338_chassis_detail_get_reader [0.063262s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7eafb0a1-f33e-427e-9c36-aa6f1798369d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:58:09.304336+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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode [0.038883s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ValidateUserDeployStepsAndTemplatesTestCase.test_ok [0.040674s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_339_chassis_chassis_id_get_admin [0.067130s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a8d63477-a9a5-4b7e-8e3a-67e285baf90b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:58:09.371378+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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail [0.060220s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing [0.039737s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ThreadExceptionTestCase.test_set_node_last_error [0.020529s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled [0.020061s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_340_chassis_chassis_id_get_member [0.065889s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cd50af18-57fd-4653-bb16-8e84b23a9f98
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:58:09.437912+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.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_unsupported [0.060439s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ThreadExceptionTestCase.test_set_node_last_error_exists [0.019973s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error [0.018543s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state [0.037655s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_341_chassis_chassis_id_get_reader [0.064245s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c77c9dbe-fc11-4c4b-855f-609eeaadbaf8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:58:09.502446+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present [0.040591s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state_disk [0.038761s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.CacheVendorTestCase.test_empty [0.036122s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state [0.039630s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_342_chassis_chassis_id_patch_admin [0.070993s] ... 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-8cee5e2a-69bb-41b5-b58f-193f774cdbfc
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:58:09.566925+00:00", "updated_at": "2025-05-29T16:58:09.596651+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_failed [0.036127s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_fails [0.038921s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok [0.047283s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_incorrect [0.038954s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_343_chassis_chassis_id_patch_member [0.068770s] ... 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-9c00c85b-d5aa-4740-8eda-f55c47e3f488
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-29T16:58:09.637716+00:00", "updated_at": "2025-05-29T16:58:09.666004+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported [0.037097s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_no_change [0.038791s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetAttachedVifTestCase.test_get_attached_vif_cleaning [0.024988s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_344_chassis_chassis_id_patch_reader [0.061722s] ... 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-72db2a67-9554-4b0a-bc1d-016cb0e0b8ff
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_inspecting [0.023865s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown [0.039288s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetAttachedVifTestCase.test_get_attached_vif_none [0.023872s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_not_implemented [0.038856s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetAttachedVifTestCase.test_get_attached_vif_provisioning [0.024627s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_345_chassis_chassis_id_delete_admin [0.062511s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content
Openstack-Request-Id: req-d4d61334-492c-4c58-8a6e-f36235ed7a20
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{2} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_rescuing [0.024110s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware [0.041727s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetAttachedVifTestCase.test_get_attached_vif_tenant [0.027159s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_346_chassis_chassis_id_delete_member [0.059297s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1a27bc59-517d-406c-a068-6824447f3ec0
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_empty [0.024933s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_invalid_args [0.039233s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetConfigDriveImageTestCase.test_build_populated [0.024836s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage [0.042029s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetConfigDriveImageTestCase.test_build_user_data_as_dict [0.025200s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_347_chassis_chassis_id_delete_reader [0.060884s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-99735975-c559-400a-83ec-846a875c889a
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_string [0.024869s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage_both [0.048619s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetConfigDriveImageTestCase.test_no_configdrive [0.024512s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_348_chassis_chassis_id_delete_service [0.060064s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c71d0c9e-4d3b-4cb8-9d16-fe91e45c2ab2
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state [9.063009s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate [0.032332s] ... ok
{2} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string [0.023376s] ... ok
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor [0.024372s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_boot_mode [0.038880s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure [0.057771s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_349_node_history_get_admin [0.066019s] ... 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-c7f6c056-a1b4-4fe6-b084-e1a5c7a39b62
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"history": [{"uuid": "df2c7ee9-8cea-4c56-875c-db8c11531ec7", "created_at": "2025-05-29T16:58:10.023556+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/df2c7ee9-8cea-4c56-875c-db8c11531ec7", "rel": "self"}]}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_boot_mode_immediate [0.039625s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_350_node_history_get_member [0.066380s] ... 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-3bf16a0f-7e23-40e2-b2da-ea281ed2ae89
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"history": [{"uuid": "dea6c9ed-d1f3-469e-b8c1-9f83298142f6", "created_at": "2025-05-29T16:58:10.089740+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/dea6c9ed-d1f3-469e-b8c1-9f83298142f6", "rel": "self"}]}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot [0.041386s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_immediate [0.039196s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_351_node_history_get_reader [0.062987s] ... 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-f0ee39fa-423a-4167-957f-e906ce6f6784
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"history": [{"uuid": "59d52815-e54c-4466-b150-a42a70993168", "created_at": "2025-05-29T16:58:10.155289+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/59d52815-e54c-4466-b150-a42a70993168", "rel": "self"}]}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_no_wait [0.038012s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.MiscTestCase.test_notify_conductor_resume_clean [0.200422s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_352_node_history_get_service [0.063797s] ... 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-cbec4747-0bce-4ae2-908a-25bdb4fdc9ae
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"history": [{"uuid": "64fe2851-4242-4e95-a606-01a164dd7f8f", "created_at": "2025-05-29T16:58:10.219595+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/64fe2851-4242-4e95-a606-01a164dd7f8f", "rel": "self"}]}]}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy [0.037385s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.MiscTestCase.test_notify_conductor_resume_operation [0.039046s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_353_node_history_get_entry_admin [0.064593s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/6d6a56ab-7ba6-43cc-a9d0-a12430f77df4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9aa3c362-841a-4dbf-9db6-1724f67a7ebd
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "6d6a56ab-7ba6-43cc-a9d0-a12430f77df4", "created_at": "2025-05-29T16:58:10.284004+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/6d6a56ab-7ba6-43cc-a9d0-a12430f77df4", "rel": "self"}]}
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure [0.275021s] ... ok
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need [0.040929s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout [0.027366s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on [0.025290s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_354_node_history_get_entry_member [0.065085s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f5224984-0c20-490d-8ffe-fc0aeabb0923 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3c898102-d0f2-49ce-8770-e64d86e8fc23
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "f5224984-0c20-490d-8ffe-fc0aeabb0923", "created_at": "2025-05-29T16:58:10.350292+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/f5224984-0c20-490d-8ffe-fc0aeabb0923", "rel": "self"}]}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on [0.042217s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.MiscTestCase.test_power_on_node_if_needed_true [0.042785s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_355_node_history_get_entry_reader [0.065441s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f2ed3f9e-d592-49c9-a9b2-3b8aa720f120 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4705c39c-0cd8-4541-8b44-5ff3f6b5eea7
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "f2ed3f9e-d592-49c9-a9b2-3b8aa720f120", "created_at": "2025-05-29T16:58:10.415938+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/f2ed3f9e-d592-49c9-a9b2-3b8aa720f120", "rel": "self"}]}
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port [0.042532s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.MiscTestCase.test_remove_node_rescue_password_save_false [0.027679s] ... ok
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true [0.031847s] ... ok
{2} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false [0.039695s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.MiscTestCase.test_restore_power_state_if_needed_true [0.038080s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts [0.020448s] ... ok
{2} ironic.tests.unit.conf.test_types.ExplicitAbsolutePath.test_explicit_absolute_path [0.018910s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_356_node_inventory_get_admin [0.222274s] ... 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-0924c911-100a-48dd-8186-23049e93f6d5
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{2} ironic.tests.unit.console.container.test_console_container.TestConsoleContainerFactory.test_factory [0.017872s] ... ok
{2} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_fail [0.017799s] ... ok
{2} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_ok [0.017878s] ... ok
{2} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_priority [0.018769s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_357_node_inventory_get_reader [0.064378s] ... 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-36c7ad04-68a1-4eff-974e-a63b90c26f58
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{2} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_load_ok [0.018580s] ... ok
{2} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_load_unknown [0.018466s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_358_node_history_get_entry_service [0.065067s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7f7f6af1-5db7-4a35-bbe9-aa3a1e777209 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dfdb1bbb-37f7-4f0e-afb2-fda0653acba9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "7f7f6af1-5db7-4a35-bbe9-aa3a1e777209", "created_at": "2025-05-29T16:58:10.769028+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/7f7f6af1-5db7-4a35-bbe9-aa3a1e777209", "rel": "self"}]}
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerDBTestCase.test_new_websocket_client_db [0.057958s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_359_shard_get_shards [0.060442s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-789eb86c-e594-4ca1-b7fe-47fc174eeca3
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"shards": [{"name": "None", "count": 3}]}
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerDBTestCase.test_new_websocket_client_db_instance_not_found [0.056499s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test__close_connection [0.055577s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_360_shard_patch_set_node_shard [0.096361s] ... 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-cd3c9824-ce6f-469d-8330-b5fc2791a77c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test__close_connection_raise_OSError [0.058711s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_361_shard_patch_set_node_shard_disallowed [0.066041s] ... 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-44a33125-0abe-4e07-b341-7aee004ad69e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:shard\", \"debuginfo\": null}"}
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_address_string_doesnt_do_reverse_dns_lookup [0.063051s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client [0.059711s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_362_parent_node_patch_by_admin [0.103004s] ... 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-5c4a8955-bedf-4f4d-8e06-cc9fa63c9428
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_http_forwarded_proto_https [0.059659s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_363_parent_node_patch_by_member [0.099395s] ... 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-3829933a-46ce-46b6-9d1a-86bfecceec4d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_ipv6_url [0.058525s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_timeout [1.046096s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_364_parent_node_patch_by_reader [0.068271s] ... 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-078efe6e-2f44-4638-85c4-f47b81b03100
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_allowed_origin_header [0.060497s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_clean [0.094165s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.058800s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_365_nodes_firmware_component_get_admin [0.065531s] ... 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-6c5fb091-9192-42b9-a010-46aa94f20bef
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"firmware": [{"created_at": "2025-05-29T16:58:11.329733+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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_deploy [0.064074s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay [1.030041s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_blank_origin_header [0.058357s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_366_nodes_firmware_component_get_member [0.066760s] ... 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-ce2865e7-aa58-4aa7-9a30-41b9a5325409
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"firmware": [{"created_at": "2025-05-29T16:58:11.396670+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]}
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_no_origin_header [0.058851s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_367_nodes_firmware_component_get_reader [0.065585s] ... 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-052e9d90-f0d2-4ce3-bb8b-1d18618a5476
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"firmware": [{"created_at": "2025-05-29T16:58:11.462905+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]}
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_token_invalid [0.059556s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_368_runbooks_post_admin [0.068903s] ... 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/d8f22bfd-fbc9-44aa-8c3d-6e3d2ff582bc
Openstack-Request-Id: req-deebb090-a66b-491c-a96d-22c1e4f6d896
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d8f22bfd-fbc9-44aa-8c3d-6e3d2ff582bc", "created_at": "2025-05-29T16:58:11.549021+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/d8f22bfd-fbc9-44aa-8c3d-6e3d2ff582bc", "rel": "self"}, {"href": "http://localhost/runbooks/d8f22bfd-fbc9-44aa-8c3d-6e3d2ff582bc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_create [0.218351s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_369_runbooks_post_member [0.071016s] ... 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/2a643b16-30c5-4d2f-b08b-912959b97a92
Openstack-Request-Id: req-ab51ca9a-4d62-49a4-9a1e-9af513aa35a4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "2a643b16-30c5-4d2f-b08b-912959b97a92", "created_at": "2025-05-29T16:58:11.620491+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/2a643b16-30c5-4d2f-b08b-912959b97a92", "rel": "self"}, {"href": "http://localhost/runbooks/2a643b16-30c5-4d2f-b08b-912959b97a92", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete [0.051075s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_370_runbooks_post_reader [0.068500s] ... 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-66711aea-3939-4a89-92d9-2068839b1694
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_controller [0.039957s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_controller_no_controllers [0.027548s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_non_default_ssl_min_version_is_set [0.217842s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_371_runbooks_get_admin [0.062541s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6fd8dc2c-a671-4c34-aeaa-fe4c02b32a6c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "e950ec96-1e2d-4bb4-8f78-2afa9fdc924c", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/e950ec96-1e2d-4bb4-8f78-2afa9fdc924c", "rel": "self"}, {"href": "http://localhost/runbooks/e950ec96-1e2d-4bb4-8f78-2afa9fdc924c", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_controllers [0.029800s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_empty [0.026942s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_reject_open_redirect [0.060469s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_372_runbooks_get_member [0.061838s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-72391862-4345-428f-aff6-4bf945b66525
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "b76ae19b-8afe-4848-8ffe-db5e7645a83d", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/b76ae19b-8afe-4848-8ffe-db5e7645a83d", "rel": "self"}, {"href": "http://localhost/runbooks/b76ae19b-8afe-4848-8ffe-db5e7645a83d", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_storage_controllers [0.028200s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller [0.037460s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_reject_open_redirect_3_slashes [0.060704s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_373_runbooks_get_reader [0.060580s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-af681907-05ba-42a5-8025-71910b078860
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"runbooks": [{"uuid": "0478a315-c88e-4e97-8030-e9c0ca07cb7c", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/0478a315-c88e-4e97-8030-e9c0ca07cb7c", "rel": "self"}, {"href": "http://localhost/runbooks/0478a315-c88e-4e97-8030-e9c0ca07cb7c", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 [0.028897s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 [0.026819s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_ssl_min_version_is_not_set [0.058323s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 [0.026290s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_374_runbooks_runbook_id_get_admin [0.061548s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/e3d3545b-194e-4766-9e1d-c56e99ccadf8 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4272154c-d16d-4658-aa08-29f85dd55f16
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "e3d3545b-194e-4766-9e1d-c56e99ccadf8", "created_at": "2025-05-29T16:58:11.929809+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e3d3545b-194e-4766-9e1d-c56e99ccadf8", "rel": "self"}, {"href": "http://localhost/runbooks/e3d3545b-194e-4766-9e1d-c56e99ccadf8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 [0.027591s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_ssl_min_version_not_set_by_default [0.057471s] ... ok
{2} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class [0.019131s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_375_runbooks_runbook_id_get_member [0.063436s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/a11dbc52-fcef-4909-9d91-a106e901ac39 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4f52a13b-8989-4ad3-be4d-0719e20f70ae
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "a11dbc52-fcef-4909-9d91-a106e901ac39", "created_at": "2025-05-29T16:58:11.993281+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/a11dbc52-fcef-4909-9d91-a106e901ac39", "rel": "self"}, {"href": "http://localhost/runbooks/a11dbc52-fcef-4909-9d91-a106e901ac39", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed [0.042910s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad [0.018605s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list [0.026222s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing [0.042726s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_376_runbooks_runbook_id_get_reader [0.061022s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/fea7abc8-8619-4775-8635-ea82b47dedd0 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-98fe4f72-9014-4856-a3a1-146593fe6b04
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "fea7abc8-8619-4775-8635-ea82b47dedd0", "created_at": "2025-05-29T16:58:12.054637+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/fea7abc8-8619-4775-8635-ea82b47dedd0", "rel": "self"}, {"href": "http://localhost/runbooks/fea7abc8-8619-4775-8635-ea82b47dedd0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate [0.029749s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist [0.023650s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success [0.043315s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list [0.037685s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error [0.041423s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_377_runbooks_runbook_id_patch_admin [0.080710s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/0d67af3f-c63b-4aea-807f-019d54a06549 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-66b9231c-9d81-4686-860a-17eb67c3f0ec
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0d67af3f-c63b-4aea-807f-019d54a06549", "created_at": "2025-05-29T16:58:12.116947+00:00", "updated_at": "2025-05-29T16:58:12.142759+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0d67af3f-c63b-4aea-807f-019d54a06549", "rel": "self"}, {"href": "http://localhost/runbooks/0d67af3f-c63b-4aea-807f-019d54a06549", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist [0.025099s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 [0.028712s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist [0.028428s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 [0.027986s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting [0.028839s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a [0.042389s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_378_runbooks_runbook_id_patch_member [0.094213s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/a7b8be27-d386-486b-9764-eb28fcbd9d63 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fe9a4d51-4b24-4b07-bf5e-cdc530e8e575
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "a7b8be27-d386-486b-9764-eb28fcbd9d63", "created_at": "2025-05-29T16:58:12.199920+00:00", "updated_at": "2025-05-29T16:58:12.236038+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/a7b8be27-d386-486b-9764-eb28fcbd9d63", "rel": "self"}, {"href": "http://localhost/runbooks/a7b8be27-d386-486b-9764-eb28fcbd9d63", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list [0.029457s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist [0.023437s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b [0.047150s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist [0.024090s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_379_runbooks_runbook_id_patch_reader [0.069314s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/ee47826f-df29-4fe3-8db4-72b6105f4875 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a789d440-18b2-4c81-bdd2-5fe14a03ffd8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist [0.027409s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list [0.030382s] ... ok
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist [0.023664s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_380_runbooks_runbook_id_patch_public_admin [0.082112s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/90855e09-fecb-45bb-ad59-5d06ff78c874 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f73b6b9c-ca70-44bb-ad95-a6f249b02825
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "90855e09-fecb-45bb-ad59-5d06ff78c874", "created_at": "2025-05-29T16:58:12.361971+00:00", "updated_at": "2025-05-29T16:58:12.389256+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/90855e09-fecb-45bb-ad59-5d06ff78c874", "rel": "self"}, {"href": "http://localhost/runbooks/90855e09-fecb-45bb-ad59-5d06ff78c874", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist [0.028278s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor [0.039376s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_381_runbooks_runbook_id_patch_public_member [0.079463s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/d924a37a-c3ee-483d-b61a-7bc05d90ed9b WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ba0697e1-2f3f-4635-b5c3-3a6bd4bcfa30
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "d924a37a-c3ee-483d-b61a-7bc05d90ed9b", "created_at": "2025-05-29T16:58:12.443577+00:00", "updated_at": "2025-05-29T16:58:12.470205+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/d924a37a-c3ee-483d-b61a-7bc05d90ed9b", "rel": "self"}, {"href": "http://localhost/runbooks/d924a37a-c3ee-483d-b61a-7bc05d90ed9b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state [0.036066s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht [0.029421s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_immediate [0.224018s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht [0.026917s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_382_runbooks_runbook_id_patch_public_reader [0.064176s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/1903f317-be12-4c41-bddc-bf136c238830 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b6fbc38f-dbd1-4edd-89ce-bc33e4cffc8e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_on_reset [0.046719s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht [0.025572s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht [0.023173s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht [0.024471s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2 [0.052900s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_383_runbooks_runbook_id_patch_owner_admin [0.081866s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/0c3e3cfe-3c17-476b-a9c9-d278aca0a3ab WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bab1c573-e06f-4bef-94de-22d39b69671e
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "0c3e3cfe-3c17-476b-a9c9-d278aca0a3ab", "created_at": "2025-05-29T16:58:12.589235+00:00", "updated_at": "2025-05-29T16:58:12.616983+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "new_owner", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0c3e3cfe-3c17-476b-a9c9-d278aca0a3ab", "rel": "self"}, {"href": "http://localhost/runbooks/0c3e3cfe-3c17-476b-a9c9-d278aca0a3ab", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups [0.025388s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2_on_reset [0.047960s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor [0.030747s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor [0.022923s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_384_runbooks_runbook_id_patch_owner_member [0.082740s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/7241a819-c38e-4034-af38-262c1d753cc8 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c68b998e-e447-4d9d-b6cf-9ff9f6266bd8
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "7241a819-c38e-4034-af38-262c1d753cc8", "created_at": "2025-05-29T16:58:12.672057+00:00", "updated_at": "2025-05-29T16:58:12.700053+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "new_owner", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/7241a819-c38e-4034-af38-262c1d753cc8", "rel": "self"}, {"href": "http://localhost/runbooks/7241a819-c38e-4034-af38-262c1d753cc8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_3 [0.045736s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found [0.022875s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online [0.023655s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true [0.023399s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_4 [0.055688s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_385_runbooks_runbook_id_patch_owner_reader [0.065896s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/07fdc118-fa2c-4492-b437-25c9692951be WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-351f0e1a-ec28-4303-bc46-5c53730b484c
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors [0.026515s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a [0.044293s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors_with_sqlite [0.026717s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_386_runbooks_runbook_id_delete_admin [0.062512s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/bb159d4c-67c8-45de-a8da-04103068e143 GOT Response: 204 No Content
Openstack-Request-Id: req-2cfc7f05-a5ef-402d-9335-868b1d3e7e3b
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors [0.026484s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5b [0.054791s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors_with_sqlite [0.025965s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_6 [0.035954s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces [0.030645s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails [0.023694s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces [0.024716s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_interface_type [0.053249s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate [0.024453s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_immediate [0.044279s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override [0.023961s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor [0.025862s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found [0.023895s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_387_runbooks_runbook_id_delete_member [0.219334s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/f9f3f1df-8580-4d59-ae05-c4ce128e02db GOT Response: 204 No Content
Openstack-Request-Id: req-31570f87-8c5d-40f8-9055-4db2e83b760d
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_offline [0.025769s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor [0.025214s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_388_runbooks_runbook_id_delete_reader [0.062056s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/d3635cd6-6517-4e73-897b-736c9b72e5d4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-06012b39-5be3-4162-99f2-8b30d45910f9
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor [0.024944s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces [0.025359s] ... ok
{2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait [0.025549s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_389_runbooks_post_project_admin [0.070696s] ... 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/4d0557bc-2e6d-4d99-86a9-98cc461ae56f
Openstack-Request-Id: req-d7a2d02c-dbba-45c0-8e3f-502e417ebace
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "4d0557bc-2e6d-4d99-86a9-98cc461ae56f", "created_at": "2025-05-29T16:58:13.184659+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/4d0557bc-2e6d-4d99-86a9-98cc461ae56f", "rel": "self"}, {"href": "http://localhost/runbooks/4d0557bc-2e6d-4d99-86a9-98cc461ae56f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_on_reset [0.217766s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks [0.040149s] ... ok
{1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_390_public_runbooks_post_admin [0.072079s] ... 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/1b4215b3-1853-460f-af4c-f4a5ea21b88a
Openstack-Request-Id: req-81d1428c-aba1-488a-8762-decb8be1c6d4
X-Openstack-Ironic-Api-Maximum-Version: 1.98
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.98
{"uuid": "1b4215b3-1853-460f-af4c-f4a5ea21b88a", "created_at": "2025-05-29T16:58:13.257203+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/1b4215b3-1853-460f-af4c-f4a5ea21b88a", "rel": "self"}, {"href": "http://localhost/runbooks/1b4215b3-1853-460f-af4c-f4a5ea21b88a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{1} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url [0.023238s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type [0.041108s] ... ok
{1} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint [0.024491s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config [0.037143s] ... ok
{1} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request [0.026423s] ... ok
{2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit [0.178689s] ... ok
{1} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request [0.024710s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi [0.038473s] ... ok
{2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate [0.031180s] ... ok
{1} ironic.tests.unit.command.test_dbsync.DbSyncTestCase.test_upgrade_and_version [0.048359s] ... 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.
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_volume_create_error_handler [0.038153s] ... ok
{1} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_latin1 [0.024508s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription [0.034800s] ... ok
{1} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm [0.024386s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription [0.037827s] ... ok
{1} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm_both [0.024335s] ... ok
{1} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_ok [0.020743s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_all [0.033315s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd [0.032020s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions [0.031919s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty [0.032053s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist [0.034560s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists [0.034423s] ... ok
{1} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_obj_versions [0.198236s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription [0.034969s] ... ok
{1} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_obj_versions_bad [0.022999s] ... ok
{1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_and [0.018830s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription [0.032779s] ... ok
{1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean [0.018240s] ... ok
{2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit [0.380561s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_delete_subscription [0.031065s] ... ok
{1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args [0.017979s] ... ok
{2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist [0.025436s] ... ok
{1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs [0.018445s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev [0.035579s] ... ok
{1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_function [0.018462s] ... ok
{1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs [0.017983s] ... ok
{1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer [0.018227s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.PrepareInstanceToBootTest.test_prepare_instance_to_boot [0.049746s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_args.ValidateDecoratorTest.test_mac_address [0.018817s] ... ok
{1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory [0.018171s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.PrepareInstanceToBootTest.test_prepare_instance_to_boot_configure_fails [0.043650s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_args.ValidateDecoratorTest.test_mixed_unvalidated [0.018311s] ... ok
{1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name [0.018403s] ... ok
{1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or [0.017809s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.PrepareInstanceToBootTest.test_prepare_instance_to_boot_localboot_prep_partition [0.043911s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_args.ValidateDecoratorTest.test_string [0.023725s] ... ok
{2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit [0.183226s] ... ok
{1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string_list [0.018600s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up [0.046757s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_args.ValidateDecoratorTest.test_unexpected_args [0.018523s] ... ok
{2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait [0.035984s] ... ok
{1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid [0.018389s] ... ok
{2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found [0.026133s] ... ok
{1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid_or_name [0.019203s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_disable_power_off [0.048446s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found [0.030618s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_empty_response [0.020127s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline [0.018929s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy [0.048987s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id [0.039798s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline_no_file [0.021418s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_nomatch_line [0.019151s] ... ok
{2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty [0.025210s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_one_line [0.018194s] ... ok
{2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist [0.023754s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track [0.059690s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_traits.DbNodeTraitTestCase.test_node_trait_exists [0.031907s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes [0.043209s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentDeploy.test_deploy_storage_should_write_image_false [0.048327s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist [0.024490s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure [0.042814s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_traits.DbNodeTraitTestCase.test_node_trait_not_exists [0.026676s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot [0.053586s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_traits.DbNodeTraitTestCase.test_set_node_traits [0.029467s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure [0.050940s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit [0.029404s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps [0.043548s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cinder.TestCinderActions.test_attach_volumes_conn_init_failure [0.039819s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate [0.026732s] ... ok
{2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist [0.024317s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority [0.042778s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure [0.039838s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit [0.026428s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties [0.029679s] ... ok
{2} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits [0.026997s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached [0.040967s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentDeploy.test_get_service_steps [0.042325s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_traits.DbNodeTraitTestCase.test_unset_node_traits [0.034217s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure [0.039529s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist [0.023545s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found [0.042486s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare [0.071487s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid [0.042020s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes [0.041723s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_check_node_list [0.026538s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states [0.057950s] ... ok
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.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible [0.023765s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure [0.041342s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_check_node_list_non_existing [0.024036s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node [0.021993s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_conn_init_failure_bad_request [0.039874s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_create_node_already_exists [0.023261s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated [0.024196s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed [0.041062s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_create_node_name_duplicate [0.022928s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags [0.020284s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits [0.020199s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node [0.029146s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting [0.214143s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_destroy_node_by_uuid [0.030612s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist [0.021941s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_firmware_component_list_after_destroying_a_node_by_uuid [0.029990s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume [0.064718s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed [0.195063s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_get_node_by_id [0.035656s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning [0.054809s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed [0.042226s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_get_node_by_instance [0.036957s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid [0.021057s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_fast_track [0.043090s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cinder.TestCinderActions.test_detach_volumes_one_detached [0.041241s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid [0.024142s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure [0.041933s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false [0.043363s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_get_node_by_name [0.042864s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found [0.039569s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_get_node_by_port_addresses [0.034979s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track [0.058873s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback [0.023256s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found [0.031526s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername [0.020925s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found [0.024295s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node [0.021740s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot [0.052826s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one [0.022267s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid [0.037190s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two [0.021783s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_localboot [0.056451s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported [0.021405s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list [0.037994s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface [0.021429s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found [0.025636s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults [0.021201s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_no_manage_agent_boot [0.052898s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config [0.022242s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description [0.035688s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type [0.020889s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_image [0.054966s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_get_node_list_filter_by_project [0.037416s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry [0.021265s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry [0.021751s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_includes_traits [0.047728s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported [0.023417s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 [0.056643s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled [0.022594s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_no_traits [0.038699s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled [0.021628s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic [0.048764s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled [0.020572s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_with_traits [0.049958s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task [0.035077s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_manage_agent_boot_false [0.072336s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default [0.033417s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults [0.035742s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_get_node_list_with_filters [0.090770s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states [0.076383s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults [0.037024s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_get_node_that_does_not_exist [0.030948s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults [0.033100s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake [0.036422s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_service [0.044731s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_get_nodeinfo_list_description [0.031315s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fallback_defaults [0.040054s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection [0.033155s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false [0.064528s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect [0.033900s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision [0.033137s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_instance_info_override [0.036472s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake [0.035580s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_with_neutron_net [0.075002s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces [0.025304s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default [0.025828s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port [0.073679s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing [0.023052s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing [0.021580s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface [0.025905s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols [0.195258s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface [0.025058s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down [0.080123s] ... ok
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_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default [0.024745s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters [0.042073s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf [0.024329s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning [0.043761s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface [0.024871s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_history_get_destroyed_after_destroying_a_node_by_uuid [0.046606s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false [0.043395s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf [0.026856s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_get_destroyed_after_destroying_a_node_by_uuid [0.036388s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface [0.025817s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_updated_for_node [0.029476s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_disable_power_off [0.068215s] ... ok
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_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task [0.037991s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image [0.018575s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_node_provision_state_count [0.037483s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail [0.018251s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_service [0.043837s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance [0.017968s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node [0.034199s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail [0.017952s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_service_disable_power_off [0.043291s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid [0.033609s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid [0.018485s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache [0.025565s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node [0.032964s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls [0.027179s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port [0.067317s] ... ok
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.db.test_nodes.DbNodeTestCase.test_release_non_locked_node [0.028664s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache [0.019643s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation [0.033372s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl [0.026427s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate [0.045197s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled [0.025647s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release [0.036600s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled [0.024707s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false [0.050748s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_reservation_in_exception_message [0.030641s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_connerror [0.021079s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror [0.022504s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node [0.038042s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_file_image_no_checksum [0.049115s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror [0.024283s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails [0.032983s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_oserror [0.022739s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params [0.048184s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_download_success_custom_timeout [0.022466s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node [0.043233s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_download_success_http_scheme [0.022135s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_image_type [0.045101s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_download_success_verify_false [0.022441s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_once_sqlite [0.031183s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_failed [0.020011s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies [0.038271s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_twice [0.032957s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_sucess [0.021501s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path [0.023219s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints [0.038868s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node [0.040134s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true [0.022418s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo [0.038595s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true_connerror [0.021651s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid [0.039481s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_none [0.018859s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning [0.028959s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_success [0.018255s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum [0.050552s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_get_handles_exceptions [0.019792s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found [0.024913s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_success [0.019712s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node [0.037504s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo [0.047811s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid [0.043449s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_algo [0.048220s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_update_node [0.030547s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_checksum [0.047394s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate [0.033617s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at [0.029652s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_image_hash [0.047374s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_get_success_verify_false [0.174448s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspecting [0.031156s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c [0.022024s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed [0.019545s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspectwait [0.030253s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_oci_no_checksum [0.057852s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_show_cache_disabled [0.019272s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at [0.029669s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length [0.018772s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false [0.039299s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 [0.018445s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspecting [0.028771s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 [0.018790s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspectwait [0.027719s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout [0.018849s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image [0.052837s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter [0.018730s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated [0.033054s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme [0.019370s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_basic_auth_success [0.051497s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_update_node_name_duplicate [0.027984s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_forbidden [0.018945s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected [0.019747s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision [0.029355s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_invalid_basic_auth [0.019327s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_basic_auth_success_blocked [0.051904s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_update_node_not_found [0.025224s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_valid_basic_auth [0.018967s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_connect_error [0.018835s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision [0.030280s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_error [0.018418s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false [0.018598s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false_error [0.018523s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error [0.018547s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true [0.019176s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true_error [0.018333s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_valid_path [0.019185s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format [0.018081s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_password [0.018059s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_image_source_is_url [0.213162s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_user [0.017769s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_password [0.017778s] ... ok
{1} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_user [0.017524s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_oci_authorization [0.053971s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_images.ImageDetectFileFormatTestCase.test_detect_file_format_fails_multiple [0.024582s] ... ok
{1} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_passes [0.021912s] ... ok
{1} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_passes_iso_gpt [0.021931s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_partition_image [0.053465s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_error_cases [0.041928s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentDeploy.test_write_image_render_configdrive [0.052543s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_path_dot_slash_notation [0.051237s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_no_proxy_without_proxies [0.053756s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.044013s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentDeploy.test_write_image_with_proxies [0.051764s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_list_loop [0.053802s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_execute_bootc_install [0.039053s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_add_trait_action [0.039858s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_set_boot_to_disk [0.039875s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_del_attribute_action [0.046476s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_set_boot_to_disk_lenovo [0.043917s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_del_port_attribute_action [0.039940s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate [0.037479s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_extend_attribute_action [0.044869s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate_fails_image_source_not_set [0.042716s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_extend_plugin_data_action [0.039399s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate_fails_with_non_oci [0.042463s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_extend_port_attribute_action [0.039074s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.AgentRescueTests.test__finalize_rescue [0.043853s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_fail_action [0.040015s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.AgentRescueTests.test__finalize_rescue_bad_command_result [0.041982s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_log_action [0.039881s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.AgentRescueTests.test__finalize_rescue_exc [0.042804s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_remove_trait_action [0.039703s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.AgentRescueTests.test__finalize_rescue_missing_command_result [0.043099s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_set_attribute_action [0.044529s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.AgentRescueTests.test__finalize_rescue_with_smartnic_port [0.044807s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_set_capability_action [0.039765s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing [0.055142s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_set_plugin_data_action [0.039945s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_set_port_attribute_action [0.038877s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_after_reboot [0.058524s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.044897s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_reboot [0.059914s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_plugin_data_action [0.039501s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_running [0.044119s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestInterpolation.test_variable_interpolation [0.038878s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestShallowMask.test_get_method_masked [0.027650s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning [0.049607s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestShallowMask.test_getitem_masked [0.025596s] ... ok
{1} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_getitem_not_masked [0.025296s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails [0.048825s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestShallowMask.test_items_masked [0.025701s] ... ok
{1} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_list_masking [0.025161s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling [0.049361s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestShallowMask.test_modifying_dict [0.025577s] ... ok
{1} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_nested_dict_masking [0.024855s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run [0.048731s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestShallowMask.test_set_mask_enabled [0.026039s] ... ok
{1} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_values_masked [0.027088s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_second_run [0.049980s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.020943s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_foreign_class [0.020249s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing [0.048046s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_with_version_and_cap [0.019376s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv4_success [0.019705s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv6_success [0.019850s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing_fails [0.050823s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event [0.045912s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_fails [0.046967s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipv6_success_rfc2732 [0.169769s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success [0.022096s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance [0.092855s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version [0.021744s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version_and_cap [0.022935s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_unexpected_failure [0.023708s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_with_client_ssl [0.023635s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_with_ssl [0.022817s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_can_send_version [0.020537s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_retries [1.819350s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_failure [0.021488s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success [0.020352s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success_with_version [0.019743s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_mask_secrets [0.019634s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort [0.234585s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated [0.028650s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_admin_role [0.024715s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_allowed_role [0.024391s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state [0.082297s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_with_allowed_role [0.030083s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure [0.024298s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure_oslo [0.024389s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_http_basic [0.027108s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 [0.100326s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_http_basic_not_authenticated [0.024008s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_invalid_requests [0.024712s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling [0.049281s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_malformed_context [0.024557s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_mask_secrets [0.026327s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_found [0.025322s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track [0.081494s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_post [0.025882s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_missing_argument [0.024906s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_no_context [0.025593s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_no_deny_methods [0.025269s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track_via_driver_info [0.082497s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_non_json_body [0.024509s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_notification [0.025399s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_success [0.025763s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_success_no_result [0.024169s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestService.test_unexpected_failure [0.025719s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_when_appropriate [0.135274s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_keystone.AuthConfTestCase.test_add_auth_opts [0.020806s] ... ok
{1} ironic.tests.unit.common.test_keystone.AuthConfTestCase.test_os_service_types_alias [0.018840s] ... ok
{1} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_resolve [0.018868s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue [0.051985s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_simple [0.017995s] ... ok
{1} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_simple_https [0.017625s] ... ok
{1} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_with_path_and_port [0.017103s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue_fails [0.048399s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean [0.056188s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure [0.063735s] ... ok
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.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate [0.020639s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure [0.018868s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing [0.018283s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name [0.018280s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid [0.017746s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid [0.017693s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_retries_without_log_mock [0.911198s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid_failure [0.017936s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid_missing_segment [0.017764s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name [0.019370s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid [0.051893s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid [0.018345s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate [0.019672s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags [0.039575s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure [0.019875s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found [0.019137s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits [0.037961s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean_fails [0.266323s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_grub_mac_path [0.024418s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path [0.022706s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node [0.045953s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path [0.023009s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_service [0.057149s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid [0.034594s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe [0.023113s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node [0.032367s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_with_reservation [0.055609s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs [0.043394s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__get_post_step_hook [0.032579s] ... ok
{2} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid [0.034317s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs [0.048810s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__get_post_step_hook_no_hook_registered [0.032637s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot [0.050106s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts [0.080252s] ... ok
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.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses [0.045871s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_deploy [0.053379s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_fail [0.044192s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp [0.052139s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_default_dhcp [0.020558s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs [0.199219s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_fail_deploy [0.051633s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.029661s] ... ok
{2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp [0.019578s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs [0.046516s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_set_bad_dhcp [0.019404s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_fail_servicing [0.045550s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_set_neutron_dhcp [0.020552s] ... ok
{2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp [0.020174s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config [0.046894s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_pregenerated_token [0.049971s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error [0.025377s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test_post_clean_step_hook [0.025624s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi [0.046214s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command [0.019922s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client [0.018548s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state [9.066745s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info [0.045783s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code [0.020547s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status [0.075766s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy [0.020661s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure [0.057547s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict [0.020389s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address [0.047925s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_convert_controller [0.055383s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded [0.020180s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure [0.034413s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect [0.023979s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_no_ipaddress [0.052703s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running [0.020531s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_failed [0.053582s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running [0.020454s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script [0.030660s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running [0.020484s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists [0.025103s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running [0.020305s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing [0.053744s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different [0.025986s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json [0.019688s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error [0.028129s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback [0.025726s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post [0.020653s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll [0.020343s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify [0.019595s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config [0.041487s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_config [0.019439s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable [0.019299s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios [0.041314s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info [0.019861s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_internal [0.019404s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_uefi [0.043404s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file [0.019856s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body [0.018623s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission [0.042385s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url [0.019208s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail [0.018510s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub [0.041869s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode [0.224227s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header [0.020060s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step [0.018955s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe [0.041630s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_service_step [0.018764s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion [0.040091s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue [0.019489s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc [0.018786s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address [0.040994s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_not_raid [0.040256s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback [0.019737s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config [0.032439s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted [0.018897s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_idrac [0.040435s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps [0.019457s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda [0.034861s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status [0.019697s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy [0.047981s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_no_retries [0.019258s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso [0.034370s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries [0.020669s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem [0.041508s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_ramdisk [0.034231s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_verify [0.021205s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps [0.019865s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__get_storage_controller_invalid_identity [0.025472s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config [0.034776s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps_older_client [0.019270s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready [0.031114s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader [0.018998s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_multipath [0.034299s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep [0.019074s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status [0.031476s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off [0.018648s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes [0.035054s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync [0.019012s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status_no_task_monitor_url [0.031144s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script [0.025009s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_agent_token_required [0.019400s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready [0.026824s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts [0.022636s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config [0.034300s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_exceeded [0.025439s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout [0.023667s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_fails [0.025666s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config [0.035489s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts [0.024010s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config [0.027323s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_clean [0.045771s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params [0.049128s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance [0.037773s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf [0.029604s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy [0.044990s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_bios [0.038309s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone [0.032598s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_clean [0.046210s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv4 [0.037288s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw [0.029617s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream [0.028908s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv6 [0.037328s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_deploy [0.044708s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition [0.030259s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready [0.026204s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv4 [0.039463s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true [0.029360s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready_retryerror [0.031733s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv6 [0.037789s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_create_configuration [0.031172s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning [0.051285s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 [0.037961s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration [0.028488s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6_bios [0.037911s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_async [0.045776s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script [0.025315s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_sync [0.029518s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info [0.023493s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info [0.023086s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_no_subtasks [0.027643s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe [0.024166s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_pre_create_configuration [0.028992s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path [0.023943s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_validate_correct_vendor [0.028467s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info [0.025643s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe [0.023633s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_broken_fast_track [0.218999s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method [0.041209s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_link_mac_pxe_configs_with_pxe_disabled [0.044310s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_managers_fail [0.042721s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track [0.052249s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config [0.029718s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_no_managers [0.040348s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config_existing_dirs [0.029400s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false [0.052822s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_pxe_config [0.030504s] ... ok
{2} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_oem_not_found [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.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_service [0.055315s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_adopt [0.040330s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning [0.050504s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning [0.045025s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_servicing [0.038101s] ... ok
{1} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link [0.019974s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying [0.051972s] ... ok
{1} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST [0.019372s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error [0.045544s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_utils.GenericUtilsTestCase.test__get_hash_object [0.026417s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning [0.050129s] ... ok
{1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name [0.019703s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_disable_power_off [0.045332s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_utils.GenericUtilsTestCase.test_file_has_content_differ [0.021386s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying [0.052716s] ... ok
{1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal [0.022116s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_disable_power_off_and_fast_track [0.045180s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary [0.021657s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration [0.046007s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track [0.045208s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset [0.047697s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false [0.045318s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning [0.051136s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service [0.056449s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy [0.050763s] ... ok
{1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled [0.181560s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service_disable_power_off [0.057449s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_utils.GenericUtilsTestCase.test_is_hostname_safe [0.018912s] ... ok
{1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id [0.018348s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning [0.049054s] ... ok
{1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name [0.018262s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service_service_error [0.051104s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_utils.GenericUtilsTestCase.test_is_valid_no_proxy [0.018496s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities [0.021063s] ... ok
{1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip [0.018062s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy [0.050496s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label [0.019601s] ... ok
{1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions [0.017511s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set [0.019563s] ... ok
{1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime [0.018524s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set_bios_mode [0.019131s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning [0.053494s] ... ok
{1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id [0.018524s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_uefi_mode [0.019509s] ... ok
{1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac [0.018688s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false [0.019458s] ... ok
{1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format [0.018896s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid [0.018284s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying [0.054474s] ... ok
{1} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_wrap_ipv6 [0.018377s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true [0.018845s] ... ok
{1} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_indexerror [0.019183s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities [0.018883s] ... ok
{1} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv4 [0.019042s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration [0.048509s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string [0.019102s] ... ok
{1} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6 [0.018901s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type [0.018514s] ... ok
{1} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal [0.018639s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability [0.018330s] ... ok
{1} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal_allowed [0.018710s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning [0.053595s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info [0.020145s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities [0.018785s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc [0.019847s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities [0.017685s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc [0.018915s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict [0.019648s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying [0.052454s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability [0.024596s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities [0.020076s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys [0.020228s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning [0.039048s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities [0.021644s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume [0.048317s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying [0.042027s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port [0.023176s] ... ok
{1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail [0.019335s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none [0.053002s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning [0.040356s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying [0.038875s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot [0.045339s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations [0.080717s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception [0.038813s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning [0.049818s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false [0.037825s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation [0.066377s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target [0.044039s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation_with_node_id [0.067261s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error [0.039954s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node [0.049836s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc [0.055729s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node [0.052943s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying [0.215374s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi [0.054827s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance [0.051426s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning [0.049181s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration [0.061331s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node [0.049018s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying [0.050587s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios [0.038512s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node [0.026607s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot [0.040442s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi [0.048653s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot [0.043079s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations [0.069683s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay [0.039255s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings [0.037679s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception [0.038465s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.BackfillAllocationTestCase.test_candidate_nodes_mismatch [0.047628s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter [0.038412s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_anaconda_deploy_image_source [0.026394s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_node_associated_with_another_instance [0.048849s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.ValidateImagePropertiesTestCase.test_validate_image_properties_boot_iso_conflict [0.024383s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter [0.046137s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_stage2_id [0.025330s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node [0.028087s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized [0.025184s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error [0.034303s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch [0.043147s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found [0.026155s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error [0.034241s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href [0.023546s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active [0.044243s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties [0.033142s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_local_boot [0.023808s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image [0.024647s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate [0.034182s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch [0.050172s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.ValidateImagePropertiesTestCase.test_validate_image_properties_ramdisk_deploy [0.025303s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict [0.024114s] ... ok
{0} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up [0.027028s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability [0.025161s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_uuid_associated_with_another_instance [0.050251s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs [0.028333s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities [0.024698s] ... ok
{0} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail [0.026783s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok [0.026317s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node [0.047340s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up [0.025615s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail [0.025347s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes [0.046713s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_fail_invalid_format [0.024975s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format [0.024669s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node [0.044493s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_empty [0.024930s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict [0.024019s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class [0.046457s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_ok [0.025133s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key [0.023751s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first [0.049944s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_ok [0.024889s] ... ok
{0} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up [0.188110s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match [0.034520s] ... ok
{0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest [0.019297s] ... ok
{0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master [0.019629s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_cleaning [0.054640s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date [0.020926s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock [0.057940s] ... ok
{0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date [0.019781s] ... ok
{0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img [0.019885s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_deploying [0.054034s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nodes_filtered_out [0.037846s] ... ok
{0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached [0.020013s] ... ok
{0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time [0.019441s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project [0.037438s] ... ok
{0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date [0.019693s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning [0.055849s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master [0.020069s] ... ok
{0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at [0.019712s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked [0.052602s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying [0.055681s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_oci_img [0.019635s] ... ok
{0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_oci_img_not_cached [0.020142s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success [0.043722s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date [0.020103s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning [0.053126s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail [0.020369s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates [0.046862s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.019958s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass [0.019303s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_deploying [0.053456s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.020205s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool [0.020200s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning [0.052519s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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_pass [0.019842s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail [0.020084s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool [0.019667s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying [0.052718s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.019490s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail [0.019459s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool [0.019504s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning [0.057353s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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_pass [0.019675s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits [0.211456s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker [0.020319s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console [0.038143s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_cannot_use_reserved [0.019567s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying [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(
{1} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_no_reserved [0.020239s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd [0.040001s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free [0.020879s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_reserved [0.019387s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning [0.055276s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user [0.038811s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console [0.039404s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying [0.054844s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles [0.088343s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password [0.045300s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning [0.051144s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail [0.039018s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying [0.053700s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir [0.040001s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed [0.094950s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate [0.033100s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning [0.048954s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port [0.032043s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled [0.068934s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying [0.046610s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port [0.033810s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port_auto_allocate [0.031502s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning [0.058363s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version [0.032432s] ... ok
{1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked [0.088017s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console [0.040666s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_deploying [0.061616s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found [0.078179s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console [0.040141s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning [0.064298s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail [0.047855s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_alloc_port [0.053613s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.047003s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_with_port [0.040584s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying [0.066307s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console [0.041700s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test_do_node_clean_abort_early [0.046040s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_cleaning [0.050309s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail [0.039232s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test_do_node_clean_abort_with_step [0.046038s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying [0.050504s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.039070s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.038732s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning [0.060915s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.037857s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying [0.058494s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.041961s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning [0.050635s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password [0.044269s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.205040s] ... ok
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(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail [0.040953s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying [0.049952s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir [0.040327s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning [0.053130s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate [0.033190s] ... ok
{1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.117126s] ... ok
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.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port [0.032561s] ... ok
{1} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive [0.040541s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port [0.033735s] ... ok
{1} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift [0.041613s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate [0.032593s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version [0.031165s] ... ok
{1} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_build [0.039871s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console [0.039683s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout [0.040224s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying [0.225162s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.042081s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback [0.039753s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning [0.051438s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_alloc_port [0.052281s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_getting_current [0.090429s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_with_port [0.043075s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_deploying [0.053086s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.046333s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state [0.038230s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance [0.039356s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.040762s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_in_background_task [0.091235s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage [0.038525s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootBaseUtils.test__node_set_boot_device_for_network_boot [0.041305s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href [0.037652s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.PXEBootRetryTestCase.test_check_boot_status_maintenance [0.044532s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_existing [0.085910s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system [0.039711s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.PXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.034880s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system_exception [0.039757s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_node_already_locked [0.074217s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso [0.041538s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso [0.040978s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_valid [0.089330s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_create_subscription [0.048392s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.PXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.196848s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_operation_exeption [0.051450s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.PXEBootRetryTestCase.test_check_boot_status_retry [0.040383s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_architecture.ArchitectureTestCase.test_architecture [0.046878s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state [0.043712s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_all_valid_data [0.041555s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.PXEBootRetryTestCase.test_check_boot_timeouts [0.041096s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_bad_value_linkagg [0.041145s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_http_boot_not_enabled [0.031300s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_validate_fail [0.243091s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_bad_value_macphy [0.042984s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue [0.042185s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_chassis_ids [0.040309s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.043380s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_worker_pool_full [0.090035s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_duplicate_tlvs [0.043327s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.043667s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_invalid_ip [0.041415s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_multiple_interfaces [0.039935s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task [0.101207s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy [0.086592s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_null_strings [0.040800s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked [0.076136s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_old_format [0.040073s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive [0.092127s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_truncated_int [0.040200s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_truncated_mac [0.039350s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on [0.094218s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_unhandled_oui [0.038801s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_smartnic_port [0.122221s] ... ok
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.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_unhandled_tlvs [0.039091s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_execute_clean_step [0.041530s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout [0.094051s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.inspector.hooks.test_physical_network.PhysicalNetworkTestCase.test_physical_network [0.057045s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps [0.041177s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_ramdisk_error.RamdiskErrorTestCase.test_ramdisk_error [0.038051s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state [0.078092s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps [0.039391s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.GetInterfacesTestCase.test_get_interfaces [0.025044s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare [0.057641s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.test_agent.AbortInspectionTestCase.test_cleanup_failed [0.051156s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail [0.078174s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_active [0.047063s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.test_agent.AbortInspectionTestCase.test_success [0.047008s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning [0.040449s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_boot_clean_up_failed [0.043851s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full [0.088378s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed [0.043032s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_instance_ramdisk [0.092100s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_disable_power_off [0.042549s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_no_power_off [0.032091s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail [0.112143s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_unrescuing [0.048344s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_no_power_off_on_fast_track [0.032353s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_tear_down_cleaning [0.040880s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_network_clean_up_failed [0.042736s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate [0.043604s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_unmanaged [0.027633s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change [0.112691s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate [0.042242s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_unmanaged_force_power_off [0.038127s] ... ok
{2} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect [0.039583s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_interface_mismatch [0.047807s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty [0.049376s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso [0.044220s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail [0.118339s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration [0.022995s] ... ok
{2} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error [0.041246s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.RAIDInterfaceTestCase.test_apply_configuration_delete_existing [0.021554s] ... ok
{0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid [0.020193s] ... ok
{0} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties [0.019693s] ... ok
{2} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input [0.054920s] ... ok
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.drivers.test_base.RAIDInterfaceTestCase.test_validate [0.020628s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail [0.110222s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config [0.020131s] ... ok
{2} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket [0.040991s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.RAIDInterfaceTestCase.test_validate_raid_config [0.020033s] ... ok
{0} ironic.tests.unit.drivers.test_base.TestFirmwareInterface.test_update_with_wrapper [0.019387s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance [0.046258s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_drac.IDRACHardwareTestCase.test_default_interfaces [0.040641s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success [0.114158s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance [0.048076s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_drac.IDRACHardwareTestCase.test_override_with_inspector [0.041709s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.043873s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ConsoleTestCase.test_disable_console_already_disabled [0.072282s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid [0.057631s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios [0.045894s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_drac.IDRACHardwareTestCase.test_override_with_redfish_bios [0.051677s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume [0.044204s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ConsoleTestCase.test_enable_console_already_enabled [0.084330s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_inspect [0.043185s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ConsoleTestCase.test_get_console [0.032784s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error [0.066944s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_drac.IDRACHardwareTestCase.test_override_with_redfish_management_and_power [0.042352s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ConsoleTestCase.test_get_console_disabled [0.032865s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail [0.032543s] ... ok
{0} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_raid [0.040442s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc [0.064957s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_drac.IDRACHardwareTestCase.test_override_with_redfish_vendor [0.051613s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled [0.095528s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot [0.039951s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.023434s] ... ok
{0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete [0.022346s] ... ok
{0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get [0.022142s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled [0.090256s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id [0.021629s] ... ok
{0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create [0.022222s] ... ok
{0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete [0.022147s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi [0.233336s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_list_save [0.023239s] ... ok
{0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save [0.021690s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail [0.090997s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update [0.028149s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap [0.072544s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_delete_nochange [0.031417s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload [0.021764s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail [0.098748s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_node.TestNodePayloads.test_node_crud_payload [0.022345s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port [0.070153s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestNodePayloads.test_node_payload [0.022564s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits [0.021912s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail [0.070507s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none [0.021719s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload [0.022131s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports [0.082768s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestNodePayloads.test_node_set_provision_state_payload [0.022778s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance [0.046095s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error [0.041714s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance [0.068918s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_notification.TestNotificationBase.test_emit_notification [0.187940s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip [0.055730s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ConsoleTestCase.test_set_console_mode_worker_pool_full [0.254360s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema [0.024389s] ... ok
{0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails [0.018242s] ... ok
{0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid [0.018282s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ContinueInspectionTestCase.test_continue_ok [0.047452s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port [0.067235s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_notification.TestNotificationBase.test_event_type_with_status [0.018829s] ... ok
{0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails [0.018128s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ContinueInspectionTestCase.test_continue_with_discovery [0.040777s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_notification.TestNotificationBase.test_mask_secrets_has_secrets [0.018899s] ... ok
{0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_no_secrets [0.017942s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi [0.071084s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_notification.TestNotificationBase.test_mask_secrets_not_affected [0.018617s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ContinueInspectionTestCase.test_wrong_state [0.065076s] ... ok
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_notification.TestNotificationBase.test_no_emit_level_too_low [0.021939s] ... ok
{0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled [0.023142s] ... ok
{1} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port [0.040146s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask [0.071059s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_notification.TestNotificationBase.test_no_emit_schema_not_populated [0.023554s] ... ok
{0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema [0.018568s] ... ok
{1} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists [0.039364s] ... ok
{0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field [0.019308s] ... ok
{0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field [0.018508s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip [0.064395s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict [0.035264s] ... ok
{0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates [0.018840s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object [0.018908s] ... ok
{1} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent [0.036198s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad [0.019107s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn [0.071808s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestObject.test__from_db_object_old [0.019626s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict [0.019344s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object [0.018384s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list [0.018193s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask [0.064708s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestObject.test_assign_value_without_DictCompat [0.018690s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node [0.117280s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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(
{0} ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes [0.019590s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 [0.018740s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id [0.064282s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestObject.test_changed_2 [0.020130s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 [0.018359s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change [0.080657s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_objects.TestObject.test_changed_4 [0.020312s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive [0.020291s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask [0.069015s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestObject.test_contains [0.020028s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new [0.018978s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance [0.083094s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_objects.TestObject.test_convert_to_version_old [0.020550s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask [0.070379s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestObject.test_convert_to_version_old_keep [0.019201s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same [0.018099s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_dehydration [0.018258s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db [0.019031s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated [0.080199s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port [0.068229s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestObject.test_do_version_changes_for_db_downgrade [0.021010s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned [0.020181s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses [0.041647s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get [0.019290s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes [0.018428s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception [0.035938s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_broken_driver [0.083552s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_objects.TestObject.test_get_changes_pinned [0.019649s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions [0.019320s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_ipmi [0.043582s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin [0.018916s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned [0.019075s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_redfish [0.040716s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail [0.087999s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_objects.TestObject.test_get_target_version_pinned_bad [0.020407s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input [0.026605s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj [0.019186s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_get_updates [0.018686s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input [0.026791s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_hydration [0.019117s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns [0.018293s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties [0.033044s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled [0.088040s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_objects.TestObject.test_hydration_type_error [0.018962s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_load [0.017830s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base [0.018061s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive [0.018280s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state [0.075193s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout [9.039206s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set [0.018695s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware [0.096214s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestObject.test_obj_constructor [0.020277s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields [0.018731s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props [0.040166s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset [0.056047s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance [0.020406s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off [0.079389s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_objects.TestObject.test_object_property [0.019567s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option [0.034601s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error [0.020207s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object [0.019445s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception [0.081635s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestObject.test_refresh_object [0.018744s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected [0.075899s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_objects.TestObject.test_static_result [0.018525s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_supports_version [0.018363s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype [0.018357s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObject.test_updates [0.018140s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist [0.091820s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available [0.078747s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_objects.TestObject.test_with_alternate_context [0.019065s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check [0.024674s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap [0.043520s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra [0.021203s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.020605s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved [0.073982s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids [0.042052s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version [0.021671s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.020996s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different [0.040936s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation [0.050016s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.023290s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name [0.021444s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap [0.042469s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address [0.022865s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id [0.021731s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_get_destroyed_after_destroying_a_node_by_uuid [0.080258s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero [0.043963s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name [0.022204s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid [0.022079s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_removed [0.045589s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list [0.021495s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_maintenance [0.078952s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id [0.022481s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas [0.020817s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh [0.021493s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off [0.100038s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_not_maintenance [0.075479s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.DestroyVolumeConnectorTestCase.test_destroy_volume_connector [0.041993s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.031271s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on [0.039168s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.180182s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh [0.037452s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure [0.084070s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate [0.207754s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create [0.022680s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail [0.034683s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy [0.022703s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get [0.022174s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties [0.032717s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id [0.021934s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy [0.090714s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid [0.021927s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_detect_vendor_ipmi [0.046562s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_volume_connector.TestVolumeConnectorObject.test_list [0.022103s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id [0.021647s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_detect_vendor_redfish [0.045598s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none [0.021588s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure [0.086743s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas [0.021359s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception [0.040116s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_volume_connector.TestVolumeConnectorObject.test_refresh [0.021595s] ... ok
{0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save [0.022386s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ng_redfish [0.043403s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNodeAdoptionTestCase.test__do_adoption_with_takeover [0.089589s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh [0.028255s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok_ipmi [0.043755s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes [0.025280s] ... ok
{0} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes_with_discovery [0.023968s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay [1.027976s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_ipmi [0.046136s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node [0.083172s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.pxe_filter.test_service.TestSync.test_nothing_on_inspection [0.034098s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_redfish [0.049979s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.pxe_filter.test_service.TestSync.test_sync [0.038118s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_ipmi [0.049940s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_redfish [0.048523s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_ipmi [0.048104s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_redfish [0.053051s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry [0.251687s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail [0.040635s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok [0.042472s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption [0.092330s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config [0.039630s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng_ipmi [0.049160s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNodeServiceTestCase.test_continue_node_service [0.081166s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.DoNodeServiceTestCase.test_continue_node_service_abort [0.091704s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios_ipmi [0.137673s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_abort_last_service_step [0.093154s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_locked [0.073858s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom_ipmi [0.137933s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_worker_pool_full [0.082102s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk_ipmi [0.137096s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_wrong_state [0.074655s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.DoNodeServiceTestCase.test_do_node_provision_action_unhold_service [0.079217s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.DoNodeServiceTestCase.test_do_node_service [0.075348s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe_ipmi [0.181418s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_service_maintenance [0.076897s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe_ipmi [0.134177s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover [0.081838s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_fail_redfish [0.045530s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_success_redfish [0.044279s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled [0.090328s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_fail [0.038585s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_success [0.037852s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception [0.090431s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_fail [0.038926s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears [0.026880s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_success [0.037828s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked [0.024865s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail [0.024888s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_invalid [0.039411s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception [0.025009s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_missing [0.039694s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock [0.026648s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock [0.025905s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_http_success [0.039602s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ManagerCheckDeployTimeoutsTestCase.test_not_mapped [0.025768s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout [0.025147s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_https_success [0.039661s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ManagerCheckDeployTimeoutsTestCase.test_worker_limit [0.027078s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_success [0.040592s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ManagerSyncLocalStateTestCase.test_already_mapped [0.025940s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile [0.033478s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good [0.025434s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker [0.024765s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none [0.032865s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked [0.025493s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list [0.034161s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped [0.024087s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level [0.033439s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit [0.024827s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives [0.033539s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi [0.038723s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 [0.024570s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked [0.032377s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 [0.023260s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 [0.022635s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented [0.037802s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 [0.022970s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 [0.022687s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param [0.038584s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 [0.023195s] ... ok
{1} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param [0.038430s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk [0.023323s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type [0.032044s] ... ok
{1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off [0.042232s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_associate_node_powered_on [0.041002s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay [2.056743s] ... ok
{1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node [0.038637s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_already_associated [0.035610s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_already_locked [0.045222s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks [0.196221s] ... ok
{1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation [0.050988s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks [0.035000s] ... ok
{1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden [0.042222s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks [0.034794s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient [0.032483s] ... ok
{1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance [0.049231s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks [0.034263s] ... ok
{1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_fix_broken_interface [0.045583s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 [0.034255s] ... ok
{1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver [0.045005s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 [0.034393s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks [0.034379s] ... ok
{1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type [0.044561s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 [0.035259s] ... ok
{1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_field_with_broken_interface [0.028036s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 [0.033793s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration [0.038847s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config [0.038594s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config [0.032645s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets [0.110097s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat [0.052604s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron [0.050104s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed [0.047866s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet [0.111668s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_uuid [0.082520s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets [0.108460s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets [0.114145s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_interface_in_allowed_state [0.829002s] ... ok
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(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 [0.110690s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 [0.104748s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 [0.104920s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_interface_in_maintenance [0.350434s] ... ok
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(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_port_uuid [0.084941s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state [0.094367s] ... ok
{1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid [0.062262s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid [0.107508s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_invalid_driver [0.028168s] ... ok
{1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false [0.035990s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_maintenance_with_broken_interface [0.038852s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs [0.107037s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_protected_invalid_state [0.026304s] ... ok
{1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected [0.026225s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup [0.052145s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_protected_set [0.049932s] ... ok
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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup [0.060493s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_protected_unset [0.063293s] ... ok
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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets [0.048301s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_retired_invalid_state [0.027041s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free [0.050295s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_retired_reason_without_retired [0.025428s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first [0.053436s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_retired_set [0.063754s] ... ok
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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first [0.060963s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_retired_unset [0.078758s] ... ok
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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports [0.046143s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first [0.052793s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 [0.056924s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first [0.051761s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_with_reset_interfaces [0.193292s] ... ok
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(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port [0.049651s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup [0.054248s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_resource_class_allowed_state [0.111292s] ... ok
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.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client [0.049917s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_resource_class_no_previous_value [0.131095s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed [0.077360s] ... ok
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.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client [0.222518s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortgroupTestCase.test_update_portgroup [0.047795s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif [0.046050s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports [0.083596s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port [0.049472s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortgroupTestCase.test_update_portgroup_failure [0.045583s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address [0.043491s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortgroupTestCase.test_update_portgroup_node_locked [0.036035s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail [0.042973s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id [0.046201s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance [0.084335s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  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.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state [0.046001s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup [0.086312s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state [0.087505s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports [0.096024s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state [0.093429s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev138/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports [0.095620s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach [0.040996s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_locked [0.030912s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup [0.083411s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error [0.039749s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_portgroup_physnet_inconsistent [0.041001s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.039192s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports [0.107517s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error [0.040012s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.038677s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_locked [0.032303s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports [0.096032s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error [0.039582s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_validate_error [0.039328s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup [0.083795s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list [0.034551s] ... ok
{1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification [0.025924s] ... ok
{1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc [0.025543s] ... ok
{1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc [0.024604s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports [0.101029s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification [0.025647s] ... ok
{1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status [0.026800s] ... ok
{1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification [0.024772s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports [0.095294s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification [0.024403s] ... ok
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive [0.041503s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check [0.028359s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup [0.086622s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit [0.027568s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports [0.092360s] ... ok
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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports [0.092987s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_never_run [0.184259s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address [0.046524s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail [0.046052s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif [0.044951s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports [0.050335s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports [0.050059s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc [0.057608s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports [0.057166s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports [0.050496s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address [0.045927s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports [0.045577s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports [0.047329s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports [0.052399s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports [0.060911s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports [0.059070s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach [0.049330s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node [0.054660s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure [0.054745s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure [0.049346s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings [0.055666s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address [0.054333s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent [0.052584s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception [0.051439s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet [0.052983s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach [0.044508s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node [0.051253s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure [0.048659s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node [0.048519s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached [0.044401s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup [0.047860s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port [0.034912s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup [0.042575s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port [0.202720s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup [0.042337s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info [0.054650s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached [0.050619s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info [0.033315s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached [0.030630s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port [0.037087s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup [0.040191s] ... ok
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple [2.055351s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning [0.043571s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.052336s] ... ok
{1} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap [0.027463s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning [0.043207s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rpcapi.ConductorRPCAPITestCase.test_version_capped [0.021056s] ... ok
{1} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync [0.018326s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing [0.044325s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps [0.037704s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif [0.044811s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled [0.033430s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none [0.043265s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_no_override [0.033153s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable [0.033502s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority [0.046744s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_fail [0.033768s] ... ok
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal [0.060730s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_ok [0.033439s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted [0.038839s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_port_and_portgroup [0.056747s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps [0.038565s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_done [0.050089s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_disable_ramdisk [0.038066s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception [0.038676s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail [0.052608s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg [0.040202s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail_servicing [0.053323s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg [0.038936s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_update_in_progress [0.049867s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps [0.038961s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__execute_firmware_update_no_targets [0.033601s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported [0.039644s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__execute_firmware_update_targets [0.031462s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_error [0.027194s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_requires_ramdisk [0.038260s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_https [0.025662s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_reserved_options [0.039089s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_swift [0.025694s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated [0.046740s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_conn_error [0.048427s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual [0.047002s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_still_waiting [0.050651s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_all_deployment_steps_all_steps [0.039684s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_task_monitor_not_found [0.050638s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_all_deployment_steps_disable_core_steps [0.040634s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_wait_elapsed [0.052403s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_all_deployment_steps_duplicate_template_and_user_steps [0.039935s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_all_deployment_steps_duplicate_template_steps [0.040499s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_update_waitting [0.047613s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error [0.039009s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last [0.049862s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps [0.039622s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last_service [0.049189s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_driver_steps [0.039981s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_more_updates [0.045798s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_user_steps [0.041088s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_all_deployment_steps_no_user_and_driver_steps [0.041563s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_create_all_components [0.084179s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps [0.040279s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_all_deployment_steps_override_template_steps [0.042371s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_empty_settings [0.051745s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_all_deployment_steps_skip_missing [0.040958s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_empty_settings_service [0.052852s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_all_deployment_steps_template_and_driver_steps [0.042461s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_get_properties [0.033967s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps [0.041394s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings [0.051128s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_all_deployment_steps_user_and_template_steps [0.042371s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings_service [0.051598s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_deploy_steps_unsorted [0.045706s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_all_components [0.040212s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps [0.040934s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.038283s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bios_component [0.062214s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates [0.040329s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bmc_component [0.062039s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits [0.036177s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings [0.049907s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_steps_from_deployment_templates [0.036578s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.039107s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings_service [0.053588s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_disable_core [0.038307s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_simple_update_action [0.047089s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_disable_non_core [0.038341s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_updateservice [0.046403s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_duplicates [0.037971s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates [0.033043s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception [0.037420s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates_empty [0.033035s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg [0.039040s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_validate [0.033440s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg [0.037638s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup [0.028243s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged [0.020418s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps [0.037698s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_not_supported [0.036454s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_override_core [0.037914s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_skip_missing [0.036926s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_set_node_deployment_steps [0.045396s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails [0.201555s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps_skip_missing [0.045519s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_file [0.026756s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_http [0.028442s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_invalid [0.018453s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_swift [0.033005s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url [0.025570s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http [0.023399s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile [0.023517s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile_fails [0.023618s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeServiceStepsTestCase.test__get_service_steps [0.192859s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_local_external [0.025268s] ... ok
{1} ironic.tests.unit.conductor.test_steps.NodeServiceStepsTestCase.test_set_node_service_steps [0.045072s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_swift [0.027291s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state [0.020982s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args [0.020322s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises [0.019381s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_missing [0.020775s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify [0.019401s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_not_string [0.023566s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state [0.019933s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_not_list [0.020016s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback [0.020351s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_source_not_known [0.019086s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler [0.019668s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_unknown_key [0.018833s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state [0.019596s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_missing [0.019536s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources [0.019064s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string [0.019950s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_wait_not_int [0.019228s] ... ok
{1} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_already_present [0.039599s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum [0.018803s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch [0.018441s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha256 [0.018214s] ... ok
{1} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off [0.051047s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha512 [0.018208s] ... ok
{1} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off_to_none [0.051584s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test__fail_validation [0.042678s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.CacheBootModeTestCase.test_failed_boot_mode [0.040682s] ... ok
{2} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi [0.041287s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.CacheBootModeTestCase.test_failed_secure [0.040526s] ... ok
{2} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown [0.045451s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.CacheBootModeTestCase.test_noneness [0.035465s] ... ok
{2} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns [0.043736s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state [9.067063s] ... ok
{1} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_retreive_and_set [0.045556s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficient_data [0.044370s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.CacheBootModeTestCase.test_unsupported [0.036469s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure [0.054156s] ... ok
{2} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path [0.040532s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure [0.034129s] ... ok
{1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track [0.040311s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption [0.045169s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FastTrackTestCase.test_is_fast_track_config_false [0.037659s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector [0.050126s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info [0.037272s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info_string [0.038257s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors [0.041512s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FastTrackTestCase.test_is_fast_track_error_blocks [0.043565s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes [0.045082s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FastTrackTestCase.test_is_fast_track_inspected_no_heartbeat [0.040072s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_attach_volumes_failure [0.048892s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FastTrackTestCase.test_is_fast_track_no_heartbeat [0.043240s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error [0.047941s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_not_in_servicing [0.038104s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_detach_volumes_failure [0.047198s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FastTrackTestCase.test_is_fast_track_power_off_false [0.038249s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception [0.049230s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FastTrackTestCase.test_is_fast_track_powered_after_heartbeat [0.054664s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_should_write_image [0.053248s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info [0.039453s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FastTrackTestCase.test_is_fast_track_via_driver_info_string [0.037633s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types [0.052866s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test__calculate_target_state [0.022324s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync [0.045198s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target [0.057516s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test__can_skip_state_change_different_state [0.037477s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target [0.056234s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal [0.045036s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify [0.068909s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test__can_skip_state_change_same_state [0.050710s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.056110s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_already_being_processed [0.048849s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors [0.050509s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_disable_power_off [0.039478s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors [0.049813s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_failed_getting_state [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(
{2} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot [0.057122s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify [0.069264s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors [0.047630s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_in_same_state [0.052649s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets [0.054613s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync [0.049285s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector [0.046254s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets [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(
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state [0.066008s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_cinder.CinderInterfaceTestCase.test_validate_success_no_settings [0.045048s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_invalid_state_notify [0.073429s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image [0.063437s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_keep_last_error [0.052107s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.045870s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_power_off [0.050910s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_power_off_already [0.049390s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue [0.211884s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up [0.045943s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot [0.047170s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic [0.042725s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_disable_power_off [0.045779s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot [0.045493s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on [0.045431s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate [0.038205s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password [0.041399s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password [0.042286s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent [0.037788s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_with_smartnic_port [0.046870s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue [0.048130s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_disable_power_off [0.048851s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot [0.048714s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on [0.050059s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port [0.050719s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentMethods.test_check_image_size [0.038030s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentMethods.test_check_image_size_fail [0.038346s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory [0.038981s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentMethods.test_check_image_size_raw_stream_disabled [0.042712s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentMethods.test_check_image_size_raw_stream_enabled [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.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_qcow2 [0.040553s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_raw [0.039618s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentMethods.test_check_image_size_without_memory_mb [0.039298s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.TestAgentMethods.test_validate_http_provisioning_http_image [0.027580s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source [0.023267s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source2 [0.023538s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args [0.024147s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_file [0.029881s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_http [0.029490s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_via_node [0.023291s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http [0.025101s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up [0.048613s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.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(
{2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy [0.049769s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_fast_track [0.060668s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.048868s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.054337s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.029075s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare [0.051456s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_disable_power_off [0.052896s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_fast_track [0.054191s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate [0.044701s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.BootInstanceTest.test_boot_instance [0.044348s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.BootInstanceTest.test_boot_instance_no_power_on [0.043097s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.FreshlyBootedTestCase.test__freshly_booted_empty_result [0.022743s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_exception_if_child_locked [2.077012s] ... ok
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_agent_base.FreshlyBootedTestCase.test__freshly_booted_has_retries [0.021245s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_multi_command [0.021127s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_single_command [0.020785s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_single_command_mismatch [0.019885s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_parent [0.078328s] ... ok
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.020793s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios_default [0.024902s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default [0.024858s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_parent_child_remains [0.222103s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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_default_set [0.186918s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_capabilities [0.019064s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_pregenerated_token [0.055773s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info [0.020697s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap [0.019064s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_secure_boot [0.019476s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach [0.056408s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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_uefi [0.021213s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios [0.021336s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on [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(
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback [0.021630s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios [0.021948s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch [0.021282s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi [0.021278s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_uefi [0.021213s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template [0.024248s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none [0.025409s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none_bios [0.027099s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback [0.024172s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch [0.022070s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch [0.022003s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch [0.025971s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property [0.021930s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property_bios_default [0.020558s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch [0.020300s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch [0.020625s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch [0.020121s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch [0.022091s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property [0.021077s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios [0.020424s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node [0.023574s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch [0.020723s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id [0.044201s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.046049s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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_vif_port_id [0.044585s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.InstanceInfoTestCase.test__check_disk_layout_unchanged [0.024364s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails [0.023650s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive [0.025160s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good [0.024347s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk [0.023238s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb [0.024116s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral [0.023347s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb [0.024653s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source [0.024361s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb [0.023692s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_non_image_deploy [0.023456s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image [0.023190s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda [0.023985s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel [0.024520s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb [0.022684s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb [0.023448s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format [0.023894s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false [0.035684s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true [0.034853s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image [0.023640s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root [0.024517s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images [0.025616s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_checksum [0.025232s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail [0.025993s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_with_auth [0.025560s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy [0.024088s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value [0.023066s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail [0.025508s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone [0.026533s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none [0.026048s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy [0.024329s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy_false [0.023783s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid [0.024521s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid_false [0.023367s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state [0.107922s] ... ok
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_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs [0.072716s] ... ok
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.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never [0.050149s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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_set_failed_state_collect_deploy_logs_overide [0.050825s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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_set_failed_state_no_poweroff [0.274375s] ... ok
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_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image [0.020811s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot [0.018920s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_exception_if_parent_locked [2.083162s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image [0.018479s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image [0.018460s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image [0.018404s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image [0.018475s] ... ok
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify [0.089199s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw [0.055640s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_power_on_parent_off [0.054409s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw_keeps_md5 [0.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(
{1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach [0.049859s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_file_image [0.052509s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_power_on_with_parent [0.074019s] ... ok
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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw [0.055803s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_power_reboot [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(
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 [0.056101s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_power_reboot_with_disable_power_off [0.051849s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image [0.052483s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout [0.051282s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_already_raw [0.051578s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach [0.051273s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo [0.052131s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_set_power_failure [0.051077s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo [0.050851s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_md5_not_permitted [0.052472s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify [0.078680s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw [0.054373s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ServiceUtilsTestCase.test_wipe_service_internal_info [0.043128s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits [0.019890s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits [0.018952s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_image [0.052404s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type [0.023465s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type [0.019393s] ... ok
{1} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing [0.019005s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha256 [0.051284s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits [0.019712s] ... ok
{1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up [0.020199s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha512 [0.053216s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data [0.020781s] ... ok
{1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default [0.037567s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_image_via_http_verified [0.051031s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image [0.019738s] ... ok
{1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false [0.042266s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_disable_validation [0.019593s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url [0.019123s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create [0.027167s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_linkfail [0.025062s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name [0.025596s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard [0.019754s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid [0.025629s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date [0.024236s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation [0.027680s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate [0.023667s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist [0.026883s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw [0.024088s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date [0.024072s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid [0.035485s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date [0.024144s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir [0.021905s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node [0.046145s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_disable_validation [0.020867s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id [0.025781s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_memory_low [0.021658s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist [0.025893s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid [0.022171s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name [0.026098s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw [0.022420s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist [0.026846s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_utils.ISOCacheTestCase.test__download_image_iso [0.022111s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_utils.ISOCacheTestCase.test_fetch_image_iso [0.021820s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid [0.026448s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist [0.027950s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list [0.030169s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist [0.074766s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity [0.032308s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node [0.034080s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly [0.072767s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc [0.032635s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception [0.038731s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state [0.029319s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_clear [0.024074s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields [0.023972s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_new_value [0.024569s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted [0.028777s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found [0.024696s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict [0.029321s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success [0.028633s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation [0.026984s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node [0.030989s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name [0.026124s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_replace_with_empty [0.190124s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated [0.034671s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc [0.041603s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found [0.025602s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid [0.023993s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac [0.040830s] ... ok
{1} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id [0.030431s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_and_uuid [0.043845s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_not_found [0.040723s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_not_found [0.039703s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_wrong_state [0.043728s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_not_found [0.039187s] ... ok
{1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db [0.215939s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_wrong_state [0.046334s] ... ok
{1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero [0.056428s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs [0.040731s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs_partial [0.040973s] ... ok
{1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 [0.054419s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_unknown_bmc_and_mac [0.040713s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid [0.039625s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_and_unknown_macs [0.041081s] ... ok
{1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes [0.119116s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_not_found [0.039622s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_wrong_state [0.044932s] ... ok
{1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes [0.102492s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_bmc_and_uuid [0.042107s] ... ok
{1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node [0.048827s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs [0.040132s] ... ok
{1} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists [0.030717s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_bmc [0.041645s] ... ok
{1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component [0.023627s] ... ok
{1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component_duplicate [0.024064s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_uuid [0.042761s] ... ok
{1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_delete_firmware_component_list [0.033853s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc [0.041028s] ... ok
{1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component [0.026407s] ... ok
{1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list [0.025923s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_and_unknown_mac [0.042162s] ... ok
{1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list_node_not_exist [0.023984s] ... ok
{1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_node_not_exist [0.023578s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_resolved_by_macs [0.042822s] ... ok
{1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_setting_not_exist [0.026916s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_no_input [0.037468s] ... ok
{1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_component_not_exist [0.025566s] ... ok
{1} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_components [0.027250s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port [0.046101s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag [0.026557s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold [0.040892s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate [0.028016s] ... ok
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist [0.026671s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail [0.040482s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag [0.033292s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok [0.040827s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found [0.025374s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug [0.023919s] ... ok
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found [0.027581s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed [0.024390s] ... ok
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id [0.028592s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading [0.025377s] ... ok
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty [0.025799s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok [0.024497s] ... ok
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist [0.024871s] ... ok
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists [0.029511s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__release_allocated_port [0.049473s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist [0.024661s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor [0.039935s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists [0.030385s] ... ok
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags [0.029249s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail [0.040592s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate [0.026222s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok [0.040637s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist [0.025416s] ... ok
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags [0.027698s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent [0.039604s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags [0.035083s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout [9.068817s] ... ok
{1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist [0.029734s] ... ok
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create [0.027613s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state [0.113736s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_duplicate_name [0.029814s] ... ok
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_duplicate_uuid [0.026917s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception [0.050126s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_invalid_step_no_interface [0.027296s] ... ok
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_no_steps [0.025797s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties [0.047612s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_destroy [0.028292s] ... ok
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_id [0.027968s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok_bios [0.055557s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_name [0.027148s] ... ok
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_uuid [0.025489s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device [0.044593s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list [0.027683s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail [0.041711s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_by_names [0.028539s] ... ok
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_by_names_no_match [0.026959s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent [0.041995s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_sorted [0.028032s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev [0.040185s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_duplicate_name [0.027872s] ... ok
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_extra [0.026682s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices [0.039580s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_name [0.026739s] ... ok
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_not_found [0.023112s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail [0.059890s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_add [0.026498s] ... ok
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_remove_all [0.027608s] ... ok
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_replace [0.028446s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok [0.063705s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_replace_args [0.027747s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device_bios [0.041784s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_uuid_not_allowed [0.023618s] ... ok
{1} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_empty_list [0.021526s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device [0.038684s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_list [0.028579s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed [0.040013s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_cd [0.041659s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.040232s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_disk [0.048208s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.045021s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.040652s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.045546s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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 [0.040418s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.047042s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_floppy [0.210961s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.043796s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_persistent [0.044617s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test_validate_correct_vendor [0.035256s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay [1.066960s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance [0.058250s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.053752s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.041182s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.238951s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance [0.041015s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.041198s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.042254s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.040543s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_deploying [0.043846s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.039851s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.042930s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail [0.042589s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios [0.043462s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good [0.039668s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume [0.050042s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate [0.040381s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.046769s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off [0.042259s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_disable_power_off [0.040298s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.054886s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off [0.041506s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.052346s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on [0.041655s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test__parse_deploy_info [0.045682s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok [0.041686s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test__parse_driver_info_default_mode [0.044863s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.041859s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test__parse_driver_info_invalid_params [0.052649s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok [0.042957s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail [0.040181s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test__parse_driver_info_rescue_mode [0.048004s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test__validate_hrefs_http_image [0.038531s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.044190s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test__validate_hrefs_https_image [0.038077s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_is_in_step_list [0.039346s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test__validate_instance_image_info [0.040393s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok [0.040301s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_clean_up_instance [0.040364s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.039910s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.039663s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_clean_up_ramdisk [0.048587s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.040721s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_instance_boot_ramdisk [0.050525s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.041288s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_instance_local_or_whole_disk_image [0.041654s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail [0.041309s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_instance_partition_image [0.046405s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok [0.041711s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail [0.040970s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image [0.069983s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok [0.041475s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.063389s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot [0.041235s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout [0.040263s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_ramdisk_middle_of_clean_step [0.069069s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.040535s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.060597s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok [0.041667s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok [0.040209s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.057981s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail [0.042111s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.069139s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.041548s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.060036s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.078598s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate [0.047134s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_validate_bios [0.042048s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.079037s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection [0.042295s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes [0.039665s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_validate_inspection_missing [0.034856s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes_with_http_method [0.040325s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_glance [0.044783s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.033767s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good [0.037527s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver [0.045476s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good [0.037872s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.047182s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good [0.037939s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_validate_rescue [0.043973s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail [0.038129s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.038926s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good [0.037794s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.032376s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.026936s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite [0.026695s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.210865s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.027634s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list [0.024944s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.028482s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty [0.024305s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig [0.029860s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty_no_path [0.024599s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_exception [0.030121s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_none [0.024997s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_string_type [0.023484s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name [0.023737s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image [0.049302s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver [0.044060s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_None [0.041210s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_first_call_to_address [0.204373s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.028582s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_false [0.040770s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.029183s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_invalid [0.040847s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_try_different_cipher_suite [0.029987s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_raises_ilo_error [0.040710s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.028604s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_check_exit_code [0.028377s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true [0.041192s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_dual_bridging [0.030395s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true_default [0.039923s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_empty_username [0.028595s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia [0.026054s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_ironic_retries [0.029035s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails [0.024621s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_port [0.028256s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_single_bridging [0.027630s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot [0.047076s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_timeout [0.028086s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc [0.047443s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_timing [0.028289s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_without_timing [0.027151s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found [0.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(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_without_username [0.027989s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__prepare_ipmi_password_str_password [0.027622s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver [0.041998s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__prepare_ipmi_password_with_numeric_password [0.026981s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates [0.041811s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.033060s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_default [0.041809s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.028646s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.026925s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_raises_ilo_error [0.042256s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.026781s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift [0.032106s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.027467s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails [0.031472s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.026475s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server [0.027135s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.028222s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails [0.026695s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.028008s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.027059s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server [0.040029s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.028116s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_file_url [0.038003s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.026830s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url [0.037153s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.026922s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_node_busy [0.029396s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices [0.040095s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.027674s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises [0.039817s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_timeout [0.027271s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode [0.025377s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_instance [0.044576s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail [0.025088s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile [0.025684s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk [0.048554s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean [0.025046s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp [0.024554s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk_rescue [0.047885s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode [0.039562s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_ensure_boot_interface_is_not_http_enabled [0.036005s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios [0.040407s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties [0.036503s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail [0.038832s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance [0.053447s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported [0.039777s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state [0.039038s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_active [0.065017s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail [0.040651s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported [0.040250s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi [0.071399s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift [0.033486s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_iscsi_bios [0.055157s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc [0.038296s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc [0.036935s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_netboot_ramdisk [0.061767s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server [0.040172s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list [0.027094s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk [0.057633s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str [0.026162s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode [0.026693s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_bios [0.061400s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError [0.025666s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode [0.026359s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk_with_kernel_arg [0.065175s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode [0.038356s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_with_fallback [0.054318s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.038959s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported [0.040080s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_false [0.202409s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk [0.243757s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_true [0.040968s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_cleaning [0.070398s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_ilo_error [0.039495s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_not_supported [0.040126s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.066780s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_scheme_http [0.041278s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia [0.040328s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.065412s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters [0.040346s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift [0.069636s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift [0.046873s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url [0.040978s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.088996s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params [0.042236s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode [0.044708s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.078903s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist [0.040061s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists [0.040362s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.076646s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy [0.047485s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist [0.040528s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.072944s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown [0.047482s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_rescue [0.071746s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except [0.043185s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode [0.046221s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.074088s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties [0.039213s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.067708s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_redfish_properties [0.043932s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values [0.028483s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_invalid_param [0.027309s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.077791s] ... ok
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.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_no_param [0.028537s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum [0.030965s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha256 [0.026995s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.081895s] ... ok
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.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha512 [0.028071s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation [0.028220s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file [0.025827s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.088286s] ... ok
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.ilo.test_console.IloConsoleInterfaceTestCase.test_validate [0.054535s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi [0.075597s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_console.IloConsoleInterfaceTestCase.test_validate_exc [0.042075s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed [0.038486s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.042228s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.039995s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild [0.045688s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state [0.029369s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port [0.039620s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail [0.027555s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good [0.040024s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_ilo6_redirect [0.027679s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image [0.039926s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state [0.035470s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection [0.044845s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection_no_inspection_ramdisk [0.050807s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_no_image_source_for_local_boot [0.039838s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false [0.044142s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso [0.046251s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso_and_image_source [0.046405s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue [0.035914s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.041902s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.041273s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods [0.019018s] ... ok
{2} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device [0.191753s] ... ok
{2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_deploy [0.088543s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end [0.052349s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_error [0.054630s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_start [0.051628s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare [0.066298s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_active [0.047160s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning [0.045160s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_reboot_to_instance [0.086042s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance [0.046771s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.033669s] ... ok
{2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.035438s] ... ok
{2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry [0.039193s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_wrong_state [0.044137s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts [0.038759s] ... ok
{2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo [0.019195s] ... ok
{2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid [0.019431s] ... ok
{2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict [0.019215s] ... ok
{2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description [0.018777s] ... ok
{2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict [0.018544s] ... ok
{2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid [0.018787s] ... ok
{2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key [0.019141s] ... ok
{2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict [0.019159s] ... ok
{2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args [0.019417s] ... ok
{2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable [0.019289s] ... ok
{2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo [0.019206s] ... ok
{2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority [0.019787s] ... ok
{2} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only [0.018928s] ... ok
{2} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args [0.018458s] ... ok
{2} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args [0.019595s] ... ok
{2} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only [0.018578s] ... ok
{2} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args [0.018797s] ... ok
{2} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo [0.019271s] ... ok
{2} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority [0.018666s] ... ok
{2} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only [0.018083s] ... ok
{2} ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables [0.017996s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_missing [0.021053s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_set [0.021010s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing [0.020706s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.021941s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.022085s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_remove [0.021596s] ... ok
{2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create [0.021906s] ... ok
{2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy [0.021947s] ... ok
{2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id [0.021231s] ... ok
{2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name [0.021245s] ... ok
{2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid [0.021585s] ... ok
{2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list [0.021446s] ... ok
{2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names [0.022369s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail [2.040559s] ... ok
{2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh [0.021156s] ... ok
{2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save [0.021870s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create [0.035629s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create_with_node [0.030414s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy [0.041844s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy_with_node [0.036237s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_node_uuid [0.026615s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_uuid [0.027671s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_not_found [0.026580s] ... ok
{2} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_refresh [0.030494s] ... ok
{2} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce [0.018577s] ... ok
{2} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values [0.017688s] ... ok
{2} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation [0.018856s] ... ok
{2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash [0.018197s] ... ok
{2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function [0.019013s] ... ok
{2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function [0.019024s] ... ok
{2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type [0.018271s] ... ok
{2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type [0.019171s] ... ok
{2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string [0.019263s] ... ok
{2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_create [0.023357s] ... ok
{2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component [0.023550s] ... ok
{2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_does_not_exist [0.022937s] ... ok
{2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_node_does_not_exist [0.023619s] ... ok
{2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_save [0.024802s] ... ok
{2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_create_and_update [0.027604s] ... ok
{2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_nochange [0.028443s] ... ok
{2} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly [0.188763s] ... ok
{2} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly [0.019972s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_create [0.023417s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_name_and_address [0.021269s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address [0.022760s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id [0.021549s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_name [0.021376s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid [0.022691s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_list [0.022136s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_list_deprecated_owner [0.022182s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas [0.021458s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_refresh [0.022166s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok [1.075050s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_save [0.022908s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh [0.039216s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail [0.068403s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported [0.022467s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported [0.022496s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported [0.022570s] ... ok
{2} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported [0.023507s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict [0.025700s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create [0.023476s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list [0.026751s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy [0.024400s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list [0.021997s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state [9.047397s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists [0.021550s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id [0.022660s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure [0.033751s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names [0.021796s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure [0.030781s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_mac [0.019934s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_unknown_hosts [0.020981s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_allowlist [0.021190s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_denylist [0.019808s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_mac [0.019669s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_unknown_hosts [0.021417s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_allowlist [0.020160s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_denylist [0.020658s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_allowlist [0.021086s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_denylist [0.020606s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_no_update [0.021258s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_allow [0.020579s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_deny [0.021279s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [1.043332s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail [0.038452s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [2.040444s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout [3.088223s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off [0.067294s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout [9.035682s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error [0.044808s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off [0.030497s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on [0.022780s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure [0.022329s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_raritan_pdu2_snmp_objects [0.022878s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry3_snmp_objects [0.021562s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry4_snmp_objects [0.021772s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement [0.024528s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off [0.025067s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on [0.026876s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset [0.028265s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off [0.023891s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on [0.023713s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects [0.022151s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_vertivgeist_pdu_snmp_objects [0.021791s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error [0.039609s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_get_power_state_off [0.039364s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_get_power_state_on [0.040156s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_get_power_state_snmp_failure [0.040213s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_get_properties [0.042382s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_reboot [0.043636s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_reboot_error [0.040414s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_reboot_snmp_failure [0.040654s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_reboot_timeout [0.039845s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_set_power_state_error [0.038861s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_set_power_state_off [0.039400s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_set_power_state_off_error [0.039179s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_set_power_state_off_snmp_failure [0.040452s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_set_power_state_on [0.041274s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_set_power_state_on_error [0.040431s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on [4.063256s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure [0.041305s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SNMPDriverTestCase.test_set_power_state_on_timeout [0.041949s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.023372s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch [0.022836s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus [0.022385s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu [0.021968s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten [0.022055s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower [0.022003s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default [0.021848s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version [0.026588s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community [0.024767s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower [0.022270s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver [0.023064s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet [0.022305s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version [0.023051s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address [0.021216s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 [0.022640s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c [0.022121s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver [0.022589s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet [0.023062s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user [0.194756s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_raritan_pdu2 [0.024190s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community [0.021273s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community [0.021838s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 [0.021179s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry4 [0.027737s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port [0.023041s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default [0.021624s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 [0.025246s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c [0.025718s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 [0.022250s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto [0.022384s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto [0.028831s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto [0.022795s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey [0.023390s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key [0.028510s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat [0.023409s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id [0.022947s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name [0.022158s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto [0.025477s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto [0.025473s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto [0.021409s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey [0.021168s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key [0.027814s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix [0.022447s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_vertivgeist_pdu [0.022364s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community [0.022687s] ... ok
{3} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references [0.020206s] ... ok
{3} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata [0.024696s] ... ok
{3} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception [0.027388s] ... ok
{3} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception [0.020477s] ... ok
{3} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception [0.023011s] ... ok
{3} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata [0.018773s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl [0.019013s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat [0.019323s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl [0.020568s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl [0.020126s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses [0.021037s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl [0.021499s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_indicators_default_impl [0.020890s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl [0.022421s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl [0.021298s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl [0.021646s] ... ok
{3} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface [0.042576s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_console_interface [0.048792s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_deploy_interface [0.036680s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_driver_interfaces [0.037895s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_get_properties [0.037106s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_inspect_interface [0.037174s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device [0.039811s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state [0.037413s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties [0.038191s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices [0.038521s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [2.092649s] ... ok
{3} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators [0.037078s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail [0.039793s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good [0.037603s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good [0.039150s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good [0.040049s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_validate [0.037159s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_parse_sleep_range [0.036055s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_power_interface [0.036465s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_sleep_one [0.038080s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_sleep_range [0.038762s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_sleep_zero [0.036888s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_generic.ManualManagementHardwareTestCase.test_default_interfaces [0.037509s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_generic.ManualManagementHardwareTestCase.test_get_properties [0.026315s] ... ok
{3} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none [0.021737s] ... ok
{3} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces [0.036670s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_ipmi.IPMIHardwareTestCase.test_default_interfaces [0.036123s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue [0.036779s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage [0.037119s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt [0.037207s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox [0.037179s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_irmc.IRMCHardwareTestCase.test_default_interfaces [0.040092s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue [0.040599s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration [0.039898s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off [1.071958s] ... ok
{3} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration [0.216765s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_irmc.IRMCHardwareTestCase.test_override_with_inspector [0.041756s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power [0.040492s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration [0.040006s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_redfish.RedfishHardwareTestCase.test_default_interfaces [0.037577s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_snmp.SNMPHardwareTestCase.test_default_interfaces [0.038167s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_snmp.SNMPHardwareTestCase.test_fake_management [0.039094s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.044337s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.042875s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.042407s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.024469s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict [0.023638s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail [0.024647s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail [0.026620s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail [0.024008s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device [0.039831s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.047096s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.045850s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.049497s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.023755s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none [0.022654s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses [0.046755s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.023691s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode [0.023076s] ... ok
{3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create [0.022324s] ... ok
{3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid [0.020266s] ... ok
{3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id [0.021867s] ... ok
{3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid [0.020703s] ... ok
{3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list [0.020912s] ... ok
{3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas [0.020723s] ... ok
{3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh [0.020693s] ... ok
{3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save [0.022787s] ... ok
{3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh [0.027760s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list [0.022316s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load [0.021882s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh [0.021495s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register [0.022044s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces [0.022249s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group [0.022068s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased [0.022495s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update [0.023930s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true [0.023090s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group [0.022694s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save [0.023607s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch [0.023760s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister [0.023432s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces [0.023467s] ... ok
{3} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce [0.019204s] ... ok
{3} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values [0.019387s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing [0.023916s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set [0.021820s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing [0.021382s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default [0.021314s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default [0.021589s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove [0.022001s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing [0.021379s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set [0.021484s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing [0.021202s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default [0.020821s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default [0.020976s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove [0.022237s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing [0.021241s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set [0.021066s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing [0.021186s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default [0.023204s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default [0.023991s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove [0.023080s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_missing [0.021672s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_set [0.023361s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_missing [0.027701s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_default [0.033619s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default [0.022399s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_remove [0.025846s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set [0.028897s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset [0.207701s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set [0.021183s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove [0.023374s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset [0.022405s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing [0.021560s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set [0.022126s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing [0.022891s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default [0.021627s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default [0.028540s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove [0.022951s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing [0.020882s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched [0.022651s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing [0.023501s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove [0.032084s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance [0.021779s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_missing [0.025848s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_set [0.034081s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_missing [0.021506s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_default [0.021697s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_non_default [0.020682s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_remove [0.021510s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing [0.021943s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_set [0.021307s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing [0.022991s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_default [0.021799s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_non_default [0.023417s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_remove [0.024585s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing [0.022792s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set [0.022757s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing [0.022922s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.022721s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.025094s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove [0.025934s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing [0.026707s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set [0.024850s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing [0.022634s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default [0.024297s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout [3.064385s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove [0.023160s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing [0.022782s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state [0.036629s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set [0.021626s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing [0.022223s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties [0.038265s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default [0.021005s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default [0.021772s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states [0.040669s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove [0.021567s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_missing [0.029716s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_set [0.025130s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing [0.028757s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default [0.024881s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_remove [0.026746s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default [0.026361s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default [0.032019s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout [0.216995s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing [0.025959s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set [0.022596s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout [0.046139s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing [0.021927s] ... ok
{3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove [0.021170s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout [0.041991s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success [0.022060s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure [0.021263s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout [0.040631s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure [0.021543s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate [0.036525s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_configdrive_as_dict [0.021005s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive [0.021131s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail [0.035318s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive_as_dict [0.020916s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits [0.021418s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_cpu_capabilities.CPUCapabilitiesTestCase.test_cpu_capabilities [0.046969s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_create [0.027021s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties [0.024885s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_extra_hardware_with_errors [0.040432s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits [0.023293s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid [0.022043s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_off [0.039435s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id [0.023061s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_on [0.040160s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found [0.021764s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid [0.024014s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_no_data_received [0.039520s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name [0.024157s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found [0.023280s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_valid_extra_hardware [0.039696s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses [0.023920s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid [0.022798s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_interface_not_in_all_interfaces [0.042458s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface [0.022046s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface_overriden [0.022940s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_chassis_id_subtype [0.043945s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list [0.024483s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields [0.024221s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_port_id_subtype [0.045952s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present [0.023016s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_tlv_value_hex_format [0.044960s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_traits [0.023489s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas [0.023057s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_lldp_none [0.043092s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh [0.024867s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_release [0.023752s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_no_port_in_ironic [0.043187s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found [0.023467s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve [0.024144s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_port_id_subtype_mac [0.043108s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found [0.023455s] ... ok
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_port_local_link_connection_already_exists [0.043327s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_valid_data [0.044479s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces [0.039385s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue [0.038213s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save [0.191881s] ... ok
{1} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage [0.045003s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh [0.042705s] ... ok
{1} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox [0.039906s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated [0.030006s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field [0.024728s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration [0.046205s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group [0.024100s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed [0.039275s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail [0.024068s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase [0.024131s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings [0.042861s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits [0.023681s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning [0.023834s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed [0.039449s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties [0.023089s] ... ok
{3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create [0.023395s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset [0.038589s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy [0.023836s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate [0.040770s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get [0.023974s] ... ok
{3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_id [0.024094s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot [0.041186s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid [0.022715s] ... ok
{3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list [0.022683s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance [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(
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot ... SKIPPED: bug #2025424
{3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_by_node_id [0.023901s] ... ok
{3} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_none [0.023556s] ... ok
{3} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_create [0.022486s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false [0.055344s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_destroy [0.023746s] ... ok
{3} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version [0.019701s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot [0.055193s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one [0.019853s] ... ok
{3} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two [0.019439s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk [0.039642s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create [0.022845s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy [0.023330s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.047143s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get [0.024164s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id [0.026818s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.046662s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot ... SKIPPED: bug #2025424
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid [0.021343s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list [0.020442s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false [0.047430s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id [0.020787s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id [0.022073s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none [0.021353s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot [0.046397s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas [0.022531s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh [0.023201s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.056978s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save [0.023177s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh [0.030150s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying [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(
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write [0.023351s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_custom_ioerror [0.023067s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block [0.023238s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing [0.055303s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block_too_many_times [0.025326s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning [0.108850s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
/usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values [0.026070s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate [0.042905s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue [0.046331s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.041422s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist [0.046805s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_elcm_error [0.200783s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_invalid_json [0.026399s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_200 [0.027932s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_500 [0.025383s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client [0.024686s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report [0.025406s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method [0.024306s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port [0.024936s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method [0.024470s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_irmc_version_fail [0.039021s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_irmc_version_success [0.044970s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable [0.025068s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable [0.024997s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.039661s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties [0.038507s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_match [0.024755s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_version_set [0.024031s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success [0.025205s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success_out_range [0.026105s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info [0.026821s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_dir_path_verify_ca [0.025319s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_file_path_verify_ca [0.025356s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method [0.024472s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port [0.024941s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method [0.024217s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_password [0.024464s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_proto [0.024273s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community [0.024468s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port [0.025464s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password [0.024977s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_proto [0.025163s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security [0.026120s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user [0.026333s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version [0.026064s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version_fips [0.026532s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.027894s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_verify_ca [0.025362s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address [0.032426s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.026436s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password [0.027435s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_auth_password [0.027363s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_priv_password [0.027772s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_user [0.027679s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username [0.025380s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_auth_password [0.025162s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_priv_password [0.026068s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 [0.025893s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_string_bool_verify_ca [0.025522s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_using_snmp_security [0.024747s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default [0.024890s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_snmp_driver_info_with_snmp [0.025311s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config [0.048183s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted [0.048372s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed [0.042142s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IRMCManagementFunctionsTestCase.test_backup_bios_config [0.048144s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed [0.041649s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped [0.041607s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_avoid_repeatedly_resume_cleaning [0.049853s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status [0.038112s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state [0.035395s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail [0.042879s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning [0.042567s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none [0.047046s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config [0.042412s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status [0.028375s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input [0.034512s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node [0.027894s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config [0.191169s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state [0.024720s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state [0.035583s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok [0.034751s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok [0.035762s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [0.036275s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception [0.035659s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception [0.039389s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [0.035892s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [0.035925s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off [2.061612s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot [2.054309s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout [2.066853s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning [0.061018s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning_failed [0.058593s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying [0.058113s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed [0.055903s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning [0.067485s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying [0.065608s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_fast_track [0.067575s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_immediate [0.057610s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_on_reset [0.055813s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail [0.041843s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_apply_time_attr [0.059341s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_supported_apply_times [0.057436s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported [0.039397s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings [0.060417s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios [0.059067s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop [0.063114s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs [0.052676s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail [0.040970s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported [0.037480s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning [0.052647s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying [0.221396s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning [0.061180s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying [0.060757s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_fast_track [0.061078s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties [0.031949s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration [0.048720s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate [0.033088s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.038860s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_only_cdrom [0.033843s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_ramdisk [0.035048s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_ramdisk [0.039664s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info [0.036484s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info_exc [0.034943s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.033818s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.031062s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.030922s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.031899s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.030382s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.034931s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_deploy [0.031600s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_exc [0.031598s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy [0.035855s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.031403s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue [0.033757s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.031844s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_iso [0.032004s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy [0.035308s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.030708s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue [0.032091s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.030676s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_ramdisk [0.032738s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_rescue [0.031322s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_boot_option [0.060678s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_whole_disk_image [0.060118s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_normal_boot [0.134631s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot [0.062119s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.237259s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.061591s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.062615s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_fast_track [0.042793s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_no_debug [0.049253s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_with_params [0.054399s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_boot_iso [0.035036s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_correct_vendor [0.033907s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_errors_with_lack_of_support [0.033548s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_inspection [0.033256s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_kernel_ramdisk [0.033928s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_local [0.033062s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_missing [0.033947s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device [0.026198s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device_inserted [0.025337s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_already_inserted [0.033572s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew [0.034316s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd [0.034169s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd_retry [0.036517s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_bad_device [0.034147s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_while_ejecting [0.036431s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_everything [0.041156s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_from_all_resources [0.040195s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_not_inserted [0.038051s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_specific [0.039582s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_unknown [0.037875s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.040298s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_create_port_when_its_state_is_none [0.052713s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties [0.032599s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs [0.035293s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu_arch [0.036882s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb [0.216273s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode [0.047466s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_count [0.047337s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_frequency [0.047699s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_instruction_set [0.050916s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_model [0.047637s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpus [0.046720s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb [0.048698s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb [0.057578s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics [0.050130s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage [0.048617s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage_and_storage [0.055483s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_storage [0.053143s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_system_vendor [0.055618s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok [0.046895s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode [0.049425s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_empty_pxe_port_macs [0.058466s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_no_mac [0.054440s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_none_pxe_port_macs [0.052151s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_disabled [0.057862s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_enabled [0.052724s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_port_creation [0.045380s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate [0.201752s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto [0.047773s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_basic [0.047631s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session [0.048508s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_disabled_sessions_cache [0.047147s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_basic_session_caching [0.047603s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_address [0.047410s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password [0.056739s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username [0.047190s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse [0.048038s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_expire_old_sessions [0.056059s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.SwitchToTenantNetworkTest.test_switch_to_tenant_network [0.047029s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.081104s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning [0.056679s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_after_reboot [0.074057s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch [0.058504s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_clean_version_mismatch_fail [0.052963s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_fail [0.045527s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_manual_clean_version_mismatch [0.068195s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_no_step_running [0.064268s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_old_command [0.051801s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_reboot [0.063784s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_running [0.044081s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_unknown [0.056876s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook [0.059350s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook_fails [0.054175s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_manual_cleaning [0.055310s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps [0.043362s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps_deploy [0.043271s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step [0.043869s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_running [0.045993s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_version_mismatch [0.045312s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_deploy_step [0.045019s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_service_step [0.044468s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step [0.044861s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step_not_found [0.220499s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps [0.043059s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps_only_oob [0.043155s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_custom_interface [0.042757s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_missing_steps [0.048345s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities [0.042674s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities_none [0.043301s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_agent_already_down [0.022279s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_okay [0.023369s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_okay_with_fail_if_unavailable [0.022180s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_timeout [0.022416s] ... ok
{1} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure [0.038320s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_exception [0.038551s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_none_requested [0.037027s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_unsupported [0.038760s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure [0.037300s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception [0.039054s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_none_requested [0.038002s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_unsupported [0.043750s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path [0.022779s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path [0.023127s] ... ok
{1} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test__expire_console_sessions [0.041311s] ... ok
{1} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test_start_console [0.039684s] ... ok
{1} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test_stop_console [0.041346s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch [0.027952s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_gpt [0.026861s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw [0.029364s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_convert_to_gpt [0.026697s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_deep_inspection_disabled [0.036743s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_disable_validation [0.030435s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_estimate_fallback [0.025244s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_format_does_not_match_glance [0.022975s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_not_safe_image [0.023156s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_part_already_exists [0.028143s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_image [0.028761s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_kernel [0.027880s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_with_image_auth [0.025219s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied [0.020403s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large [0.020449s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size [0.021838s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount [0.019352s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched [0.019533s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted [0.018484s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount [0.018919s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering [0.017874s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception [0.020759s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned [0.020360s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.Ilo5ImageHandlerTestCase.test_ilo5_kernel_param_config [0.024039s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param [0.023958s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param_not_found [0.023207s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bios [0.034421s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso [0.033205s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_with_instance_info [0.032454s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_default_boot_mode [0.035732s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params [0.034377s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params [0.033492s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults [0.035119s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info [0.206216s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios [0.033831s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_bios [0.033449s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning [0.035181s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_uefi [0.033760s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi [0.033213s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_with_node_external_http_url [0.034132s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_floppy_image [0.032680s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_iso_image [0.031463s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso [0.033595s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso_user_supplied [0.033610s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image [0.031389s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_binary_url [0.033134s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_url [0.033501s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso [0.032089s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso [0.035415s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso_vendor_prefix [0.034537s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_external_ip [0.033177s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_network_data [0.033364s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_tls [0.035817s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image [0.033782s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_file [0.034215s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix [0.034593s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image [0.035721s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_config_external_http_url [0.046424s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_node_external_http_url [0.035708s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_with_external_ip [0.034418s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image [0.036649s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_custom_cache [0.036217s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_file [0.042814s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_from_swift [0.035137s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local [0.039774s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local_external_http_url [0.039258s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_noop [0.034377s] ... ok
{1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_schema [0.036136s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls [0.023528s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked [0.022141s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat [0.023330s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked [0.023739s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls [0.022421s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked [0.025470s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls [0.021405s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked [0.023077s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 [0.020698s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 [0.020258s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 [0.020671s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls [0.021472s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked [0.023729s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling [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(
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__check_cipher_suite_errors [0.027954s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_empty_list [0.028680s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_one_element [0.025394s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_returns_last_to_first [0.025833s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.027318s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite [0.026845s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.027288s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.028252s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig [0.027620s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception [0.028143s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address [0.027979s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.027909s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.027609s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite [0.202078s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.029633s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code [0.028252s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging [0.028884s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username [0.028831s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries [0.029567s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries_multiple [0.028624s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port [0.029108s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging [0.028867s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timeout [0.029343s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing [0.029244s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing [0.028568s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username [0.029668s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args [0.027829s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info [0.027442s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials [0.028440s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port [0.031774s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version [0.026944s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite [0.027839s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 [0.027140s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number [0.025719s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key [0.025385s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars [0.025859s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid [0.027451s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 [0.026511s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password [0.027819s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_allocated [0.026734s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_specified [0.028030s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials [0.029212s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters [0.029750s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported [0.028717s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass [0.030039s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type [0.028889s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging [0.025954s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters [0.026585s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported [0.027351s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass [0.031879s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries [2.048668s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error [0.053102s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception [0.028801s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off [0.028839s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on [0.030659s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_caller_exception [0.029170s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_str_password [0.027533s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_tempfile_known_exception [0.026938s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_tempfile_unknown_exception [0.030657s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_with_numeric_password [0.027516s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_write_exception [0.029072s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__set_and_wait_explicit_reboot [1.051326s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off [1.080161s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries [2.069879s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.030454s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.029099s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.030090s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.034144s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.028950s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.030566s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.029810s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.029458s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.030905s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.032577s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.033194s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.034124s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy [0.028737s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.029247s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout [0.196181s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_http_boot_enabled [0.036016s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk [0.072749s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk_rescue [0.074605s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk_uefi [0.073009s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios [0.022513s] ... ok
{1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console [0.020526s] ... ok
{1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect [0.019966s] ... ok
{1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name [0.024394s] ... ok
{1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue [0.019901s] ... ok
{1} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor [0.019274s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ [0.027494s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read [0.049985s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write [0.046973s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 [0.049775s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_client [0.026695s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context [0.045863s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport [0.051241s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries [0.051973s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout [0.051303s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err [0.054999s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get [0.047966s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine [0.048019s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport [0.048108s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next [0.048235s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine [0.048447s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport [0.049061s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set [0.047538s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine [0.051380s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport [0.055043s] ... ok
{1} ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps [0.024875s] ... ok
{1} ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps [0.021459s] ... ok
{1} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper [0.020872s] ... ok
{1} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper [0.024082s] ... ok
{1} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces [0.047656s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.Ilo5HardwareTestCase.test_override_raid [0.060728s] ... ok
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.test_ilo.IloHardwareTestCase.test_default_interfaces [0.038943s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.040431s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.044396s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.042651s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.041891s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties [0.209523s] ... ok
{1} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method [0.039615s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods [0.040328s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs [0.022751s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail [0.021144s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail [0.020818s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs [0.023644s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift [0.021542s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown [0.021511s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label [0.020587s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name [0.019859s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local [0.022805s] ... ok
{1} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift [0.026701s] ... ok
{1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create [0.022871s] ... ok
{1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name [0.022229s] ... ok
{1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id [0.023001s] ... ok
{1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name [0.022594s] ... ok
{1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid [0.022452s] ... ok
{1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list [0.022725s] ... ok
{1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas [0.021736s] ... ok
{1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh [0.022953s] ... ok
{1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save [0.023101s] ... ok
{1} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh [0.029325s] ... ok
{1} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value [0.019144s] ... ok
{1} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value [0.020694s] ... ok
{1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value [0.019399s] ... ok
{1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value [0.018765s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api [0.019407s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor [0.019644s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api [0.019583s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor [0.019716s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport [0.019209s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero [0.019879s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports [0.019309s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision [0.019676s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored [0.019541s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport [0.018877s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization [0.019123s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables [0.018704s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin [0.019213s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api [0.019118s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor [0.020474s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api [0.021089s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor [0.020099s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported [0.021841s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing [0.022611s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set [0.023519s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported [0.022111s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing [0.021646s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default [0.022035s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default [0.021019s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove [0.021681s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_missing [0.021190s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_set [0.020976s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_missing [0.021585s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_default [0.021498s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_non_default [0.021987s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_remove [0.021487s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing [0.021431s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set [0.021483s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing [0.021752s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default [0.022476s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default [0.021697s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove [0.021796s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra [0.021662s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.021465s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version [0.021904s] ... ok
{1} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.021539s] ... ok
{1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_change_state [0.022220s] ... ok
{1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_deny_macs [0.023076s] ... ok
{1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_no_macs [0.022106s] ... ok
{1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_only_new_macs [0.022764s] ... ok
{1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_removed_nodes [0.022326s] ... ok
{1} ironic.tests.unit.pxe_filter.test_service.TestManager.test_init_and_run [0.028660s] ... ok
{1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute [0.021555s] ... ok
{1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute [0.020431s] ... ok
{1} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked [0.020245s] ... ok
{1} ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute [0.020905s] ... ok
======
Totals
======
Ran: 10056 tests in 252.0744 sec.
 - Passed: 10011
 - Skipped: 45
 - Expected Fail: 0
 - Unexpected Success: 0
 - Failed: 0
Sum of execute time for each test: 829.9690 sec.
==============
Worker Balance
==============
 - Worker 0 (2315 tests) => 0:02:48.936119
 - Worker 1 (2859 tests) => 0:04:11.094202
 - Worker 2 (2753 tests) => 0:03:20.791499
 - Worker 3 (2129 tests) => 0:03:39.208798
Test id                                                                                                                        Runtime (s)
-----------------------------------------------------------------------------------------------------------------------------  -----------
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout                              9.069
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state                        9.067
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state                               9.067
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state                              9.063
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state                         9.047
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout                                     9.039
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout                               9.036
ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on  4.063
ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout  3.088
ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout     3.064
___________________________________ summary ____________________________________
  py39: commands succeeded
  congratulations :)
+ RPM_EC=0
++ jobs -p
+ exit 0
Processing files: openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.noarch
Provides: openstack-ironic = 1:29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.noarch
warning: File not found: /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64/usr/lib/python3.9/site-packages/ironic_tests.egg_info
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.XnW1br
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev138
+ DOCDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.x86_64/usr/share/doc/openstack-ironic-common
+ cp -pr README.rst /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.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.IsDmFA
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev138
+ LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.x86_64/usr/share/licenses/openstack-ironic-common
+ cp -pr LICENSE /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9 openstack-ironic-common = 1:29.1.0-0.20250529165237.4cc3fd3.el9 python3.9dist(ironic) = 29.1~~dev138 python3dist(ironic) = 29.1~~dev138
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.20250529165237.4cc3fd3.el9.noarch
Provides: openstack-ironic-api = 1:29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.noarch
Provides: openstack-ironic-conductor = 1:29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.noarch
Provides: openstack-ironic-novncproxy = 1:29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.noarch
Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.Xx0GK4
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev138
+ LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.x86_64/usr/share/licenses/openstack-ironic-dnsmasq-tftp-server
+ cp -pr LICENSE /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9 openstack-ironic-dnsmasq-tftp-server = 1:29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.noarch
Provides: openstack-ironic-pxe-filter = 1:29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9.noarch
Provides: python-ironic-tests = 1:29.1.0-0.20250529165237.4cc3fd3.el9 python3-ironic-tests = 1:29.1.0-0.20250529165237.4cc3fd3.el9 python3.9-ironic-tests = 1:29.1.0-0.20250529165237.4cc3fd3.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.20250529165237.4cc3fd3.el9
Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64
Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.src.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-api-29.1.0-0.20250529165237.4cc3fd3.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-dnsmasq-tftp-server-29.1.0-0.20250529165237.4cc3fd3.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-novncproxy-29.1.0-0.20250529165237.4cc3fd3.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-pxe-filter-29.1.0-0.20250529165237.4cc3fd3.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-conductor-29.1.0-0.20250529165237.4cc3fd3.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-common-29.1.0-0.20250529165237.4cc3fd3.el9.noarch.rpm
Wrote: /builddir/build/RPMS/python3-ironic-tests-29.1.0-0.20250529165237.4cc3fd3.el9.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.Dzb6wJ
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev138
+ /usr/bin/rm -rf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250529165237.4cc3fd3.el9.x86_64
+ RPM_EC=0
++ jobs -p
+ exit 0
Child return code was: 0